diff --git a/src/components/auth/sign-up/status/index.tsx b/src/components/auth/sign-up/status/index.tsx index 0f3e12e..6c6727f 100644 --- a/src/components/auth/sign-up/status/index.tsx +++ b/src/components/auth/sign-up/status/index.tsx @@ -8,27 +8,27 @@ import { Button } from '@/share/ui/button' import { Card, CardContent } from '@/share/ui/card' import { useTranslations } from 'next-intl' import { useEffect } from 'react' -import { useParseToken } from './hook' +import { useParseToken } from '@/services/auth/auth.query-options' export default function SignUpStatusWrapper({ token, }: Readonly<{ token: string }>) { const router = useRouter() - const { data, isLoading, isSuccess, isError } = useParseToken(token) + const { data, isLoading, isSuccess, error } = useParseToken(token) + const status = data?.data?.status useEffect(() => { if (isLoading) return - if (isError) return router.replace('/signup') - const showSuccess = isSuccess && data?.data?.status === 'PENDING' - if (showSuccess) return + if (error) return void router.replace('/signup') + if (status === 'CREATE' || status === 'PENDING') return router.replace('/signup') - }, [isLoading, isSuccess, data, router, isError]) + }, [isLoading, error, status, router]) if (isLoading) { return } - if (isSuccess && data?.data?.status === 'PENDING') { + if (isSuccess && (status === 'CREATE' || status === 'PENDING')) { return } @@ -45,7 +45,7 @@ function SignUpStatus() {

- {t('status.title')} + {t('status.create.title')}

@@ -55,7 +55,7 @@ function SignUpStatus() {

- {t('status.description')} + {t('status.create.description')}

@@ -67,7 +67,7 @@ function SignUpStatus() { size="sm" onClick={() => mutate.mutate()} > - {t('status.button')} + {t('btn.done')}
diff --git a/src/constants/scenario.ts b/src/constants/scenario.ts index 2d14a84..f76641f 100644 --- a/src/constants/scenario.ts +++ b/src/constants/scenario.ts @@ -1,4 +1,4 @@ -export const SCENARIO_STATUS = ['SUCCESS', 'FAILED'] as const +export const SCENARIO_STATUS = ['PASSED', 'FAILED'] as const export const SCENARIO_ENVIRONMENT = 'Sandbox' diff --git a/src/libs/security/headers.ts b/src/libs/security/headers.ts index 6fd68b7..b1cadaa 100644 --- a/src/libs/security/headers.ts +++ b/src/libs/security/headers.ts @@ -25,7 +25,7 @@ export function buildContentSecurityPolicy(opts: { isProd: boolean }): string { "style-src 'self' 'unsafe-inline'", "img-src 'self' data: blob: https:", "font-src 'self' data:", - `connect-src 'self' ${recaptcha}`, + `connect-src 'self' blob: ${recaptcha}`, `frame-src 'self' ${recaptcha}`, "frame-ancestors 'none'", "base-uri 'self'", diff --git a/src/services/auth/auth.query-options.tsx b/src/services/auth/auth.query-options.tsx index 3a73c10..442a24d 100644 --- a/src/services/auth/auth.query-options.tsx +++ b/src/services/auth/auth.query-options.tsx @@ -22,6 +22,8 @@ export const authKeys = { all: ['auth'] as const, verifyToken: (token?: string) => [...authKeys.all, token, 'verifyToken'] as const, + parseToken: (token: string) => + [...authKeys.all, token, 'parseToken'] as const, } export function useVerifyToken(token: string) { @@ -32,6 +34,14 @@ export function useVerifyToken(token: string) { }) } +export function useParseToken(token: string) { + return useQuery({ + queryKey: authKeys.parseToken(token), + queryFn: () => authApi.parseToken(token), + retry: false, + }) +} + const clearAuthAndLogout = () => { localStorage.removeItem(AUTH_INFO_KEY) }