'use client'; import { Link, useRouter } from '@/shared/config/i18n/navigation'; import { setToken, setUser } from '@/shared/lib/token'; import { Button } from '@/shared/ui/button'; import { Form, FormControl, FormField, FormItem, FormMessage, } from '@/shared/ui/form'; import { Input } from '@/shared/ui/input'; import { Label } from '@/shared/ui/label'; import { zodResolver } from '@hookform/resolvers/zod'; import { useMutation, useQueryClient } from '@tanstack/react-query'; import { Loader2, User } from 'lucide-react'; import { useTranslations } from 'next-intl'; import { useForm } from 'react-hook-form'; import { toast } from 'sonner'; import z from 'zod'; import { auth_api } from '../lib/api'; import { authForm } from '../lib/form'; const Login = () => { const router = useRouter(); const t = useTranslations(); const form = useForm>({ resolver: zodResolver(authForm), defaultValues: { password: '', username: '', }, }); const queryClient = useQueryClient(); const { mutate, isPending } = useMutation({ mutationFn: (body: { username: string; password: string; tg_id?: string; }) => auth_api.login(body), onSuccess: (res) => { setToken(res.data.access); setUser(form.getValues('username')); router.push('/'); queryClient.refetchQueries({ queryKey: ['product_list'] }); }, onError: () => { toast.error(t('Username yoki parol xato kiritildi'), { richColors: true, position: 'top-center', }); }, }); function onSubmit(values: z.infer) { mutate({ password: values.password, username: values.username, }); } return (
{/* Header */}

{t('Tizimga kirish')}

{/* Form */}
( )} /> ( )} />

{t( "Agarda sizda kirish uchun login va parol yo'q bolsa iltimos bizga murojat qiling", )}{' '} {t('Murojat qilish')}

); }; export default Login;