fix: query key is made dyanmic (#2735)

This commit is contained in:
Palash Gupta 2023-05-19 19:04:41 +05:30 committed by GitHub
parent cf95d9c76f
commit 02035ebd82
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 37 additions and 19 deletions

View File

@ -27,7 +27,9 @@ import AppReducer from 'types/reducer/app';
import { ChildrenContainer, Layout } from './styles'; import { ChildrenContainer, Layout } from './styles';
function AppLayout(props: AppLayoutProps): JSX.Element { function AppLayout(props: AppLayoutProps): JSX.Element {
const { isLoggedIn } = useSelector<AppState, AppReducer>((state) => state.app); const { isLoggedIn, user } = useSelector<AppState, AppReducer>(
(state) => state.app,
);
const { pathname } = useLocation(); const { pathname } = useLocation();
const { t } = useTranslation(); const { t } = useTranslation();
@ -39,21 +41,21 @@ function AppLayout(props: AppLayoutProps): JSX.Element {
] = useQueries([ ] = useQueries([
{ {
queryFn: getUserVersion, queryFn: getUserVersion,
queryKey: 'getUserVersion', queryKey: ['getUserVersion', user?.accessJwt],
enabled: isLoggedIn, enabled: isLoggedIn,
}, },
{ {
queryFn: getUserLatestVersion, queryFn: getUserLatestVersion,
queryKey: 'getUserLatestVersion', queryKey: ['getUserLatestVersion', user?.accessJwt],
enabled: isLoggedIn, enabled: isLoggedIn,
}, },
{ {
queryFn: getFeaturesFlags, queryFn: getFeaturesFlags,
queryKey: 'getFeatureFlags', queryKey: ['getFeatureFlags', user?.accessJwt],
}, },
{ {
queryFn: getDynamicConfigs, queryFn: getDynamicConfigs,
queryKey: 'getDynamicConfigs', queryKey: ['getDynamicConfigs', user?.accessJwt],
}, },
]); ]);

View File

@ -4,9 +4,12 @@ import getRetentionPeriodApi from 'api/settings/getRetention';
import Spinner from 'components/Spinner'; import Spinner from 'components/Spinner';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { useQueries } from 'react-query'; import { useQueries } from 'react-query';
import { useSelector } from 'react-redux';
import { AppState } from 'store/reducers';
import { ErrorResponse, SuccessResponse } from 'types/api'; import { ErrorResponse, SuccessResponse } from 'types/api';
import { TTTLType } from 'types/api/settings/common'; import { TTTLType } from 'types/api/settings/common';
import { PayloadProps as GetRetentionPeriodAPIPayloadProps } from 'types/api/settings/getRetention'; import { PayloadProps as GetRetentionPeriodAPIPayloadProps } from 'types/api/settings/getRetention';
import AppReducer from 'types/reducer/app';
import GeneralSettingsContainer from './GeneralSettings'; import GeneralSettingsContainer from './GeneralSettings';
@ -16,6 +19,7 @@ type TRetentionAPIReturn<T extends TTTLType> = Promise<
function GeneralSettings(): JSX.Element { function GeneralSettings(): JSX.Element {
const { t } = useTranslation('common'); const { t } = useTranslation('common');
const { user } = useSelector<AppState, AppReducer>((state) => state.app);
const [ const [
getRetentionPeriodMetricsApiResponse, getRetentionPeriodMetricsApiResponse,
@ -26,20 +30,20 @@ function GeneralSettings(): JSX.Element {
{ {
queryFn: (): TRetentionAPIReturn<'metrics'> => queryFn: (): TRetentionAPIReturn<'metrics'> =>
getRetentionPeriodApi('metrics'), getRetentionPeriodApi('metrics'),
queryKey: 'getRetentionPeriodApiMetrics', queryKey: ['getRetentionPeriodApiMetrics', user?.accessJwt],
}, },
{ {
queryFn: (): TRetentionAPIReturn<'traces'> => queryFn: (): TRetentionAPIReturn<'traces'> =>
getRetentionPeriodApi('traces'), getRetentionPeriodApi('traces'),
queryKey: 'getRetentionPeriodApiTraces', queryKey: ['getRetentionPeriodApiTraces', user?.accessJwt],
}, },
{ {
queryFn: (): TRetentionAPIReturn<'logs'> => getRetentionPeriodApi('logs'), queryFn: (): TRetentionAPIReturn<'logs'> => getRetentionPeriodApi('logs'),
queryKey: 'getRetentionPeriodApiLogs', queryKey: ['getRetentionPeriodApiLogs', user?.accessJwt],
}, },
{ {
queryFn: getDisks, queryFn: getDisks,
queryKey: 'getDisks', queryKey: ['getDisks', user?.accessJwt],
}, },
]); ]);

View File

@ -9,7 +9,10 @@ import history from 'lib/history';
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { useQuery } from 'react-query'; import { useQuery } from 'react-query';
import { useSelector } from 'react-redux';
import { AppState } from 'store/reducers';
import { PayloadProps as PrecheckResultType } from 'types/api/user/loginPrecheck'; import { PayloadProps as PrecheckResultType } from 'types/api/user/loginPrecheck';
import AppReducer from 'types/reducer/app';
import { FormContainer, FormWrapper, Label, ParentContainer } from './styles'; import { FormContainer, FormWrapper, Label, ParentContainer } from './styles';
@ -34,6 +37,7 @@ function Login({
}: LoginProps): JSX.Element { }: LoginProps): JSX.Element {
const { t } = useTranslation(['login']); const { t } = useTranslation(['login']);
const [isLoading, setIsLoading] = useState<boolean>(false); const [isLoading, setIsLoading] = useState<boolean>(false);
const { user } = useSelector<AppState, AppReducer>((state) => state.app);
const [precheckResult, setPrecheckResult] = useState<PrecheckResultType>({ const [precheckResult, setPrecheckResult] = useState<PrecheckResultType>({
sso: false, sso: false,
@ -49,7 +53,7 @@ function Login({
const getUserVersionResponse = useQuery({ const getUserVersionResponse = useQuery({
queryFn: getUserVersion, queryFn: getUserVersion,
queryKey: 'getUserVersion', queryKey: ['getUserVersion', user?.accessJwt],
enabled: true, enabled: true,
}); });

View File

@ -236,7 +236,7 @@ function Members(): JSX.Element {
getOrgUser({ getOrgUser({
orgId: (org || [])[0].id, orgId: (org || [])[0].id,
}), }),
queryKey: 'getOrgUser', queryKey: ['getOrgUser', org?.[0].id],
}); });
const [dataSource, setDataSource] = useState<DataType[]>([]); const [dataSource, setDataSource] = useState<DataType[]>([]);

View File

@ -11,9 +11,12 @@ import { useNotifications } from 'hooks/useNotifications';
import { useCallback, useEffect, useState } from 'react'; import { useCallback, useEffect, useState } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { useQuery } from 'react-query'; import { useQuery } from 'react-query';
import { useSelector } from 'react-redux';
import { useLocation } from 'react-router-dom'; import { useLocation } from 'react-router-dom';
import { useCopyToClipboard } from 'react-use'; import { useCopyToClipboard } from 'react-use';
import { AppState } from 'store/reducers';
import { PayloadProps } from 'types/api/user/getPendingInvites'; import { PayloadProps } from 'types/api/user/getPendingInvites';
import AppReducer from 'types/reducer/app';
import { ROLES } from 'types/roles'; import { ROLES } from 'types/roles';
import InviteTeamMembers from '../InviteTeamMembers'; import InviteTeamMembers from '../InviteTeamMembers';
@ -28,6 +31,7 @@ function PendingInvitesContainer(): JSX.Element {
const { t } = useTranslation(['organizationsettings', 'common']); const { t } = useTranslation(['organizationsettings', 'common']);
const [state, setText] = useCopyToClipboard(); const [state, setText] = useCopyToClipboard();
const { notifications } = useNotifications(); const { notifications } = useNotifications();
const { user } = useSelector<AppState, AppReducer>((state) => state.app);
useEffect(() => { useEffect(() => {
if (state.error) { if (state.error) {
@ -46,8 +50,8 @@ function PendingInvitesContainer(): JSX.Element {
}, [state.error, state.value, t, notifications]); }, [state.error, state.value, t, notifications]);
const getPendingInvitesResponse = useQuery({ const getPendingInvitesResponse = useQuery({
queryFn: () => getPendingInvites(), queryFn: getPendingInvites,
queryKey: 'getPendingInvites', queryKey: ['getPendingInvites', user?.accessJwt],
}); });
const toggleModal = (value: boolean): void => { const toggleModal = (value: boolean): void => {

View File

@ -23,7 +23,7 @@ function Login(): JSX.Element {
const versionResult = useQuery({ const versionResult = useQuery({
queryFn: getUserVersion, queryFn: getUserVersion,
queryKey: 'getUserVersion', queryKey: ['getUserVersion', jwt],
enabled: !isLoggedIn, enabled: !isLoggedIn,
}); });

View File

@ -10,12 +10,14 @@ import AppReducer from 'types/reducer/app';
function ResetPassword(): JSX.Element { function ResetPassword(): JSX.Element {
const { t } = useTranslation('common'); const { t } = useTranslation('common');
const { isLoggedIn } = useSelector<AppState, AppReducer>((state) => state.app); const { isLoggedIn, user } = useSelector<AppState, AppReducer>(
(state) => state.app,
);
const [versionResponse] = useQueries([ const [versionResponse] = useQueries([
{ {
queryFn: getUserVersion, queryFn: getUserVersion,
queryKey: 'getUserVersion', queryKey: ['getUserVersion', user?.accessJwt],
enabled: !isLoggedIn, enabled: !isLoggedIn,
}, },
]); ]);

View File

@ -62,7 +62,7 @@ function SignUp({ version }: SignUpProps): JSX.Element {
getInviteDetails({ getInviteDetails({
inviteId: token || '', inviteId: token || '',
}), }),
queryKey: 'getInviteDetails', queryKey: ['getInviteDetails', token],
enabled: token !== null, enabled: token !== null,
}); });

View File

@ -11,12 +11,14 @@ import SignUpComponent from './SignUp';
function SignUp(): JSX.Element { function SignUp(): JSX.Element {
const { t } = useTranslation('common'); const { t } = useTranslation('common');
const { isLoggedIn } = useSelector<AppState, AppReducer>((state) => state.app); const { isLoggedIn, user } = useSelector<AppState, AppReducer>(
(state) => state.app,
);
const [versionResponse] = useQueries([ const [versionResponse] = useQueries([
{ {
queryFn: getUserVersion, queryFn: getUserVersion,
queryKey: 'getUserVersion', queryKey: ['getUserVersion', user?.accessJwt],
enabled: !isLoggedIn, enabled: !isLoggedIn,
}, },
]); ]);