This repository has been archived on 2022-10-07. You can view files and clone it, but cannot push or open issues or pull requests.
skynet-webportal/packages/dashboard-v2/src/hooks/useUpgradeRedirect.js

31 lines
1.0 KiB
JavaScript

import { navigate } from "gatsby";
import { useEffect, useState } from "react";
import { usePortalSettings } from "../contexts/portal-settings";
import { useUser } from "../contexts/user";
import freeTier from "../lib/tiers";
export default function useUpgradeRedirect() {
const [verifyingSubscription, setVerifyingSubscription] = useState(true);
const { user, loading: userDataLoading } = useUser();
const { settings, loading: portalSettingsLoading } = usePortalSettings();
useEffect(() => {
setVerifyingSubscription(true);
const isDataLoaded = !userDataLoading && !portalSettingsLoading && user && settings;
const hasPaidSubscription = user.tier > freeTier.tier;
if (isDataLoaded) {
if (settings.isSubscriptionRequired && !hasPaidSubscription) {
navigate("/upgrade");
} else {
setVerifyingSubscription(false);
}
}
}, [user, userDataLoading, settings.isSubscriptionRequired, portalSettingsLoading, settings]);
return {
verifyingSubscription,
};
}