import { useState } from 'react'; import { useNavigate, Link as RouterLink } from 'react-router-dom'; import { Box, Container, Paper, TextField, Button, Typography, Link, Alert, } from '@mui/material'; import { CloudUpload as CloudIcon } from '@mui/icons-material'; import { useAuth } from '../hooks/useAuth'; export default function RegisterPage() { const navigate = useNavigate(); const { register } = useAuth(); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [confirmPassword, setConfirmPassword] = useState(''); const [error, setError] = useState(''); const [loading, setLoading] = useState(false); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(''); if (password !== confirmPassword) { setError('Пароли не совпадают'); return; } if (password.length < 8) { setError('Пароль должен быть не менее 8 символов'); return; } setLoading(true); try { await register(email, password); navigate('/login'); } catch (err: any) { setError(err.response?.data?.detail || 'Ошибка регистрации'); } finally { setLoading(false); } }; return ( Регистрация Создайте аккаунт для доступа к облачному хранилищу
setEmail(e.target.value)} margin="normal" required autoFocus /> setPassword(e.target.value)} margin="normal" required helperText="Минимум 8 символов" /> setConfirmPassword(e.target.value)} margin="normal" required /> {error && ( {error} )} Уже есть аккаунт?{' '} Войти
); }