import { useId, useState } from 'react' import type { FormEvent } from 'react' import { Navigate, useLocation } from 'react-router-dom' import { ApiError } from '@/api/client' import '@/features/auth/LoginPage.css' import { useAuth } from '@/features/auth/useAuth' interface LocationState { from?: { pathname: string } } export function LoginPage() { const { status, login } = useAuth() const location = useLocation() const emailId = useId() const passwordId = useId() const [email, setEmail] = useState('') const [password, setPassword] = useState('') const [showPassword, setShowPassword] = useState(false) const [submitting, setSubmitting] = useState(false) const [formError, setFormError] = useState(null) // Уже вошли — на странице входа делать нечего. if (status === 'authenticated') { const state = location.state as LocationState | null const redirectTo = state?.from?.pathname ?? '/' return } async function handleSubmit(event: FormEvent) { event.preventDefault() setFormError(null) setSubmitting(true) try { await login(email, password) } catch (err) { const message = err instanceof ApiError ? err.message : 'Не вдалося підключитися до сервера' setFormError(message) } finally { setSubmitting(false) } } return (

Assistant System

Вхід у систему

{formError && (
{formError}
)}
setEmail(e.target.value)} placeholder="you@example.com" />
setPassword(e.target.value)} placeholder="••••••••" />
) }