'use client'; import { useState, useEffect } from 'react'; import { useRouter } from 'next/navigation'; import { requestPasswordReset } from '@/api/auth'; const loadMaterialComponents = async () => { await Promise.all([ import('@material/web/textfield/filled-text-field.js'), import('@material/web/button/filled-button.js'), import('@material/web/button/text-button.js'), ]); }; export default function ForgotPasswordPage() { const router = useRouter(); const [email, setEmail] = useState(''); const [loading, setLoading] = useState(false); const [error, setError] = useState(''); const [success, setSuccess] = useState(false); const [componentsLoaded, setComponentsLoaded] = useState(false); useEffect(() => { loadMaterialComponents() .then(() => setComponentsLoaded(true)) .catch((err) => { console.error('Error loading components:', err); setComponentsLoaded(true); }); }, []); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); setError(''); setSuccess(false); try { await requestPasswordReset({ email }); setSuccess(true); } catch (err: any) { setError(err.response?.data?.detail || 'Ошибка при отправке запроса. Проверьте email.'); } finally { setLoading(false); } }; if (!componentsLoaded) { return (
Восстановление пароля
{success ? ( <>Введите ваш email для восстановления пароля
> )}