diff --git a/src/components/authentication/Enable2FA.tsx b/src/components/authentication/Enable2FA.tsx index fa78d30..c7c8635 100644 --- a/src/components/authentication/Enable2FA.tsx +++ b/src/components/authentication/Enable2FA.tsx @@ -5,10 +5,9 @@ import { useEnable2FAMutation } from '../../services/Enable2FAApi'; import { useGetUserByIdQuery } from '../../services/userApi'; import { toast } from 'react-toastify'; const Enable2FA = () => { - const userId = useAppSelector(state => state.user.userId); - const { data: userData, isSuccess: isUserFetched } = useGetUserByIdQuery(userId); - - const initialState = useAppSelector(state => state.user.is2FAEnabled) as boolean; + const initialState = useAppSelector(state => state.user.is2FAEnabled); + const userID = localStorage.getItem('user') || undefined; + const { data, isLoading } = useGetUserByIdQuery(userID, { skip: !userID }); const token = useAppSelector(state => state.user.token) as string; const [enabled, setEnabled] = useState(initialState); const dispatch = useAppDispatch(); @@ -25,16 +24,22 @@ const Enable2FA = () => { } }; useEffect(() => { - if (isError) dispatch(set2FA(!enabled)); - if (isUserFetched) { - dispatch(set2FA(userData.message.enable2FA)); - setEnabled(userData.message.enable2FA); + if (data) { + setEnabled(data.message.enable2FA); + dispatch(set2FA(data.message.enable2FA)); } - }, [enabled, dispatch, isError, setEnabled]); + if (isError) dispatch(set2FA(!enabled)); + }, [data, dispatch, isError, setEnabled]); return (
- - handleEnabling()} checked={enabled} /> + {isLoading ? ( +

Loading...

+ ) : ( + <> + + handleEnabling()} checked={enabled} /> + + )}
); }; diff --git a/src/services/index.ts b/src/services/index.ts index 49e642f..65bdb0c 100644 --- a/src/services/index.ts +++ b/src/services/index.ts @@ -4,7 +4,7 @@ import { RootState } from '../redux/store'; export const mavericksApi = createApi({ reducerPath: 'mavericksApi', baseQuery: fetchBaseQuery({ - baseUrl: 'https://mavericks.nijohn.dev/api/', + baseUrl: 'https://mavericks.nijohn.dev/api', prepareHeaders: (headers, { getState }) => { const token = (getState() as RootState).user.token; if (token) {