diff --git a/frontend-next-migration/src/app/[lng]/(helper)/admin/_components/AuthRefreshTest.tsx b/frontend-next-migration/src/app/[lng]/(helper)/admin/_components/AuthRefreshTest.tsx new file mode 100644 index 000000000..fc8cc5b3b --- /dev/null +++ b/frontend-next-migration/src/app/[lng]/(helper)/admin/_components/AuthRefreshTest.tsx @@ -0,0 +1,64 @@ +'use client'; +import { useState } from 'react'; +import { useSelector } from 'react-redux'; +import { + selectAuthUserState, + useRefreshAuthMutation, + AccessTokenInfoResponse, + AuthUserSchema, +} from '@/entities/Auth'; +import { LS_KEYS } from '@/shared/const/LS_KEYS'; + +const AuthRefreshTest = () => { + const [refreshAuth, { isLoading, error }] = useRefreshAuthMutation(); + const authUser = useSelector((state: { authUser: AuthUserSchema }) => + selectAuthUserState(state), + ); + const [response, setResponse] = useState(null); + const [refreshToken, setRefreshToken] = useState(''); + const [storedAuthUser, setStoredAuthUser] = useState(null); + + const handleRefresh = async () => { + try { + const refreshResponse = await refreshAuth({ refreshToken }).unwrap(); + setResponse(refreshResponse); + setStoredAuthUser(localStorage.getItem(LS_KEYS.AUTH_USER)); + } catch { + setResponse(null); + setStoredAuthUser(localStorage.getItem(LS_KEYS.AUTH_USER)); + } + }; + + return ( +
+

Auth refresh test

+ + setRefreshToken(event.target.value)} + /> +
+ + {error &&
{JSON.stringify(error, null, 2)}
} + {response &&
{JSON.stringify(response, null, 2)}
} +
+

Redux auth state

+
{JSON.stringify(authUser, null, 2)}
+
+

localStorage AuthUser after request

+
{storedAuthUser ?? 'No localStorage snapshot yet'}
+
+
+ ); +}; + +export default AuthRefreshTest; diff --git a/frontend-next-migration/src/app/[lng]/(helper)/admin/page.tsx b/frontend-next-migration/src/app/[lng]/(helper)/admin/page.tsx index a11f237b2..97c107cc6 100644 --- a/frontend-next-migration/src/app/[lng]/(helper)/admin/page.tsx +++ b/frontend-next-migration/src/app/[lng]/(helper)/admin/page.tsx @@ -10,6 +10,7 @@ import NewsCardsGrid from './_components/NewsCardsGrid'; import DescriptionCardsSection from './_components/DescriptionCardsSection'; import MobileCardsGrid from './_components/MobileCardsGrid'; import BarIndicatorBlock from '@/app/[lng]/(helper)/admin/_components/BarIndicatorBlock'; +import AuthRefreshTest from './_components/AuthRefreshTest'; import useSizes from '@/shared/lib/hooks/useSizes'; import hannu from '@/shared/assets/images/heros/hannu-hodari/hannu-hodari.png'; import vihapuhe from '@/shared/assets/images/heros/hate-speech/Vihapuhe.png'; @@ -48,6 +49,8 @@ const Page = () => { component: , }} > + +