diff --git a/apps/landing/src/app/(auth)/signin/_actions/signin-action.ts b/apps/landing/src/app/(auth)/signin/_actions/signin-action.ts index 0a42b5f..0397189 100644 --- a/apps/landing/src/app/(auth)/signin/_actions/signin-action.ts +++ b/apps/landing/src/app/(auth)/signin/_actions/signin-action.ts @@ -8,8 +8,6 @@ import { } from '../_validation/signin-validation'; export async function SigninAction(request: SignInValidationType) { - console.log(request); - const validRequest = signInValidationSchema.parse(request); const { data } = await fetchPostSignin(validRequest); diff --git a/apps/landing/src/app/(auth)/signin/_hooks/use-post-signin.ts b/apps/landing/src/app/(auth)/signin/_hooks/use-post-signin.ts index 217b35e..2d4ee62 100644 --- a/apps/landing/src/app/(auth)/signin/_hooks/use-post-signin.ts +++ b/apps/landing/src/app/(auth)/signin/_hooks/use-post-signin.ts @@ -1,5 +1,6 @@ import { useMutation } from '@tanstack/react-query'; import { useRouter } from 'next/navigation'; +import { toast } from 'sonner'; import { SigninAction } from '../_actions/signin-action'; import { useFormSignin } from './use-form-signin'; @@ -8,11 +9,20 @@ export function usePostSignin(form: ReturnType) { return useMutation({ mutationFn: SigninAction, + onSuccess: () => { router.push('/'); }, - onError: () => { + onError: (error, variables) => { form.resetField('password'); + + if (error.message.includes('not active')) { + setTimeout(() => { + router.push(`/verification?ref=${variables.email}`); + }, 750); + } + + toast.error(error.message); }, }); } diff --git a/apps/landing/src/app/(auth)/verification/_actions/resend-otp-action.ts b/apps/landing/src/app/(auth)/verification/_actions/resend-otp-action.ts index 005fab2..48f733e 100644 --- a/apps/landing/src/app/(auth)/verification/_actions/resend-otp-action.ts +++ b/apps/landing/src/app/(auth)/verification/_actions/resend-otp-action.ts @@ -19,13 +19,13 @@ export async function resendOTPAction(request: ResendOTPValidationType) { if (!isCapchaValid) throw new Error('Failed to verify captcha'); - const { data } = await fetcher.POST('/v1/auth/send-otp', { + const { data, error } = await fetcher.POST('/v1/auth/send-otp', { body: { email: validRequest.email, }, }); - console.log(data); + if (error) throw new Error(error.message); - return data?.message; + return data; } diff --git a/apps/landing/src/app/(auth)/verification/_components/verification-tabs.tsx b/apps/landing/src/app/(auth)/verification/_components/verification-tabs.tsx index 39d8bba..319505c 100644 --- a/apps/landing/src/app/(auth)/verification/_components/verification-tabs.tsx +++ b/apps/landing/src/app/(auth)/verification/_components/verification-tabs.tsx @@ -31,7 +31,7 @@ export function VerificationTabs() { )} onClick={() => setActiveTab('resend')} > - Kirim Ulang OTP + Resend OTP diff --git a/apps/landing/src/app/(auth)/verification/_hooks/use-post-resend-otp.ts b/apps/landing/src/app/(auth)/verification/_hooks/use-post-resend-otp.ts index 8d50f69..401d6eb 100644 --- a/apps/landing/src/app/(auth)/verification/_hooks/use-post-resend-otp.ts +++ b/apps/landing/src/app/(auth)/verification/_hooks/use-post-resend-otp.ts @@ -1,13 +1,18 @@ import { useMutation } from '@tanstack/react-query'; -import { useRouter } from 'next/navigation'; +import { toast } from 'sonner'; import { resendOTPAction } from '../_actions/resend-otp-action'; import { useFormResendOTP } from './use-form-resend-otp'; export function usePostResendOTP(form: ReturnType) { - const router = useRouter(); - return useMutation({ mutationFn: resendOTPAction, - onSuccess: () => router.replace('/verification?success=true'), + onSuccess: ({ message }) => { + form.reset(); + toast.success(message); + }, + onError: ({ message }) => { + form.reset(); + toast.error(message); + }, }); }