'use client'; import { yupResolver } from '@hookform/resolvers/yup'; import * as yup from 'yup'; import { Button, Input, LoaderSpinner } from '@theme/components'; import { SubmitHandler, useForm } from 'react-hook-form'; import { useLocalization, useRouter } from '@akinon/next/hooks'; import { useGetAnonymousTrackingMutation } from '@akinon/next/data/client/user'; import { usePathname } from 'next/navigation'; import clsx from 'clsx'; type AnonymousTrackingFormType = { email: string; number: string; }; export const AnonymousTracking = ({ setOrder }) => { const { t } = useLocalization(); const pathname = usePathname(); const router = useRouter(); const [getAnonymousTrackingData, { isLoading }] = useGetAnonymousTrackingMutation(); const loginFormSchema = (t) => yup.object().shape({ email: yup .string() .email(t('account.anonymous_order.error.email_valid')) .required(t('account.anonymous_order.error.required')), number: yup .number() .transform((value) => (isNaN(value) ? undefined : value)) .required(t('account.anonymous_order.error.required')) }); const { register, handleSubmit, formState: { errors } } = useForm({ resolver: yupResolver(loginFormSchema(t)) }); const onSubmit: SubmitHandler = (data) => { getAnonymousTrackingData(data) .unwrap() .then((response) => { if (response) { setOrder(response?.[0]); } }) .catch(() => { setOrder(null); }) .finally(() => { router.push(pathname + '?formSuccess=true'); }); }; return (

{t('account.anonymous_order.form.title')}

); };