import { useState } from 'react' import { Link, useNavigate } from 'react-router-dom' import { useForm } from 'react-hook-form' import { zodResolver } from '@hookform/resolvers/zod' import { z } from 'zod' import { useAuthStore } from '@/store/auth' import { Button, Input, Card, CardHeader, CardTitle, CardContent } from '@/components/ui' const loginSchema = z.object({ login: z.string().min(3, 'Логин должен быть не менее 3 символов'), password: z.string().min(6, 'Пароль должен быть не менее 6 символов'), }) type LoginForm = z.infer export function LoginPage() { const navigate = useNavigate() const { login, isLoading, error, clearError } = useAuthStore() const [submitError, setSubmitError] = useState(null) const { register, handleSubmit, formState: { errors }, } = useForm({ resolver: zodResolver(loginSchema), }) const onSubmit = async (data: LoginForm) => { setSubmitError(null) clearError() try { await login(data) navigate('/marathons') } catch { setSubmitError(error || 'Ошибка входа') } } return (
Вход
{(submitError || error) && (
{submitError || error}
)}

Нет аккаунта?{' '} Зарегистрироваться

) }