import { useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { useForm } from 'react-hook-form'; import { zodResolver } from '@hookform/resolvers/zod'; import { loginSchema, type LoginInput } from '../../../shared/schemas/auth'; import { useAuth } from '../contexts/AuthContext'; export default function Login() { const { login } = useAuth(); const navigate = useNavigate(); const [error, setError] = useState(''); const { register, handleSubmit, formState: { errors, isSubmitting }, } = useForm({ resolver: zodResolver(loginSchema), defaultValues: { username: '', password: '' }, }); const onSubmit = async (data: LoginInput) => { setError(''); try { await login(data.username, data.password); navigate('/'); } catch { setError('Invalid username or password'); } }; const inputClass = 'w-full bg-gray-800 border border-gray-700 text-gray-100 placeholder-gray-500 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-transparent'; return (

Ticketing System

Sign in to your account

{error && (
{error}
)}
{errors.username && (

{errors.username.message}

)}
{errors.password && (

{errors.password.message}

)}
); }