import React, { useState } from 'react'; import { Link, useNavigate } from 'react-router-dom'; import { useMutation } from '@tanstack/react-query'; import { GraduationCap } from 'lucide-react'; import toast from 'react-hot-toast'; import { authApi } from '../api/client'; import { OAuthButtons } from '../components/OAuthButtons'; import { useAuthStore } from '../store/auth'; import type { TokenResponse } from '../types'; export function Register() { const navigate = useNavigate(); const { setAuth } = useAuthStore(); const [name, setName] = useState(''); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const register = useMutation({ mutationFn: () => authApi.register({ name, email, password }), onSuccess: (response) => { const data: TokenResponse = response.data; setAuth(data.user, data.access_token); toast.success('Аккаунт создан! Проверьте email для подтверждения.'); navigate('/cabinet'); }, onError: (error: any) => { const msg = error.response?.data?.detail || 'Ошибка регистрации'; toast.error(msg); }, }); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); register.mutate(); }; return (
Создайте аккаунт, это бесплатно
Уже есть аккаунт?{' '} Войти