Commit 2d92ce21 authored by Max Alekseenko's avatar Max Alekseenko

some fixes

parent 1797669f
...@@ -53,7 +53,7 @@ const defaultQueryResult = { ...@@ -53,7 +53,7 @@ const defaultQueryResult = {
refetch: () => Promise.resolve({} as never), refetch: () => Promise.resolve({} as never),
}; };
const RewardsContext = createContext<TRewardsContext>({ const initialState = {
balancesQuery: defaultQueryResult, balancesQuery: defaultQueryResult,
dailyRewardQuery: defaultQueryResult, dailyRewardQuery: defaultQueryResult,
referralsQuery: defaultQueryResult, referralsQuery: defaultQueryResult,
...@@ -66,7 +66,9 @@ const RewardsContext = createContext<TRewardsContext>({ ...@@ -66,7 +66,9 @@ const RewardsContext = createContext<TRewardsContext>({
closeLoginModal: () => {}, closeLoginModal: () => {},
login: async() => ({}), login: async() => ({}),
claim: async() => {}, claim: async() => {},
}); };
const RewardsContext = createContext<TRewardsContext>(initialState);
// Message to sign for the rewards program // Message to sign for the rewards program
function getMessageToSign(address: string, nonce: string, isLogin?: boolean, refCode?: string) { function getMessageToSign(address: string, nonce: string, isLogin?: boolean, refCode?: string) {
...@@ -245,7 +247,11 @@ export function RewardsContextProvider({ children }: Props) { ...@@ -245,7 +247,11 @@ export function RewardsContextProvider({ children }: Props) {
} }
}, [ apiFetch, errorToast, fetchParams ]); }, [ apiFetch, errorToast, fetchParams ]);
const value = useMemo(() => ({ const value = useMemo(() => {
if (!isEnabled) {
return initialState;
}
return {
balancesQuery, balancesQuery,
dailyRewardQuery, dailyRewardQuery,
referralsQuery, referralsQuery,
...@@ -258,7 +264,8 @@ export function RewardsContextProvider({ children }: Props) { ...@@ -258,7 +264,8 @@ export function RewardsContextProvider({ children }: Props) {
closeLoginModal: setIsLoginModalOpen.off, closeLoginModal: setIsLoginModalOpen.off,
login, login,
claim, claim,
}), [ };
}, [
isLoginModalOpen, setIsLoginModalOpen, balancesQuery, dailyRewardQuery, checkUserQuery, isLoginModalOpen, setIsLoginModalOpen, balancesQuery, dailyRewardQuery, checkUserQuery,
apiToken, login, claim, referralsQuery, rewardsConfigQuery, isInitialized, apiToken, login, claim, referralsQuery, rewardsConfigQuery, isInitialized,
]); ]);
......
import { Flex, Skeleton, Image } from '@chakra-ui/react'; import { Flex, Skeleton, Image } from '@chakra-ui/react';
import { useRouter } from 'next/router';
import React, { useEffect } from 'react'; import React, { useEffect } from 'react';
import config from 'configs/app';
import { useRewardsContext } from 'lib/contexts/rewards'; import { useRewardsContext } from 'lib/contexts/rewards';
import { apos } from 'lib/html-entities'; import { apos } from 'lib/html-entities';
import DailyRewardClaimButton from 'ui/rewards/DailyRewardClaimButton'; import DailyRewardClaimButton from 'ui/rewards/DailyRewardClaimButton';
...@@ -13,19 +13,22 @@ import PageTitle from 'ui/shared/Page/PageTitle'; ...@@ -13,19 +13,22 @@ import PageTitle from 'ui/shared/Page/PageTitle';
import useRedirectForInvalidAuthToken from 'ui/snippets/auth/useRedirectForInvalidAuthToken'; import useRedirectForInvalidAuthToken from 'ui/snippets/auth/useRedirectForInvalidAuthToken';
const RewardsDashboard = () => { const RewardsDashboard = () => {
const router = useRouter();
const { balancesQuery, apiToken, referralsQuery, rewardsConfigQuery, isInitialized } = useRewardsContext(); const { balancesQuery, apiToken, referralsQuery, rewardsConfigQuery, isInitialized } = useRewardsContext();
useRedirectForInvalidAuthToken(); useRedirectForInvalidAuthToken();
useEffect(() => { useEffect(() => {
if (isInitialized && !apiToken) { if (!config.features.rewards.isEnabled || (isInitialized && !apiToken)) {
router.replace({ pathname: '/' }, undefined, { shallow: true }); window.location.assign('/');
} }
}, [ isInitialized, apiToken, router ]); }, [ isInitialized, apiToken ]);
const numberOfReferrals = Number(referralsQuery.data?.referrals || 0); const numberOfReferrals = Number(referralsQuery.data?.referrals || 0);
if (!config.features.rewards.isEnabled) {
return null;
}
return ( return (
<> <>
<PageTitle <PageTitle
......
...@@ -8,6 +8,7 @@ import type { NavItem } from 'types/client/navigation'; ...@@ -8,6 +8,7 @@ import type { NavItem } from 'types/client/navigation';
import { route } from 'nextjs-routes'; import { route } from 'nextjs-routes';
import type { Route } from 'nextjs-routes'; import type { Route } from 'nextjs-routes';
import config from 'configs/app';
import { useRewardsContext } from 'lib/contexts/rewards'; import { useRewardsContext } from 'lib/contexts/rewards';
import useIsMobile from 'lib/hooks/useIsMobile'; import useIsMobile from 'lib/hooks/useIsMobile';
import LightningLabel, { LIGHTNING_LABEL_CLASS_NAME } from 'ui/snippets/navigation/LightningLabel'; import LightningLabel, { LIGHTNING_LABEL_CLASS_NAME } from 'ui/snippets/navigation/LightningLabel';
...@@ -43,6 +44,10 @@ const RewardsNavLink = ({ isCollapsed, onClick }: Props) => { ...@@ -43,6 +44,10 @@ const RewardsNavLink = ({ isCollapsed, onClick }: Props) => {
onClick?.(); onClick?.();
}, [ onClick, isInitialized, apiToken, openLoginModal ]); }, [ onClick, isInitialized, apiToken, openLoginModal ]);
if (!config.features.rewards.isEnabled) {
return null;
}
const content = ( const content = (
<Link <Link
href={ isInitialized && apiToken ? route(nextRoute) : undefined } href={ isInitialized && apiToken ? route(nextRoute) : undefined }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment