import { useForm, SubmitHandler } from 'react-hook-form'; import { TextField, Button, Container, Typography, Box, Stack, Link, CircularProgress } from '@mui/material'; import { AxiosResponse } from 'axios'; import { ApiResponse, LoginFormData } from '../../interfaces/auth'; import { login, setUserData } from '../../store/auth'; import { useNavigate } from 'react-router-dom'; import AuthService from '../../services/AuthService'; import UserService from '../../services/UserService'; const SignIn = () => { const { register, handleSubmit, formState: { errors, isSubmitting } } = useForm({ defaultValues: { username: '', password: '', grant_type: 'password', scope: '', client_id: '', client_secret: '' } }) const navigate = useNavigate(); const onSubmit: SubmitHandler = async (data) => { const formBody = new URLSearchParams(); for (const key in data) { formBody.append(key, data[key as keyof LoginFormData] as string); } try { const response: AxiosResponse = await AuthService.login(formBody) const token = response.data.access_token const userDataResponse: AxiosResponse = await UserService.getCurrentUser(token) setUserData(JSON.stringify(userDataResponse.data)) login(token) navigate('/'); } catch (error) { console.error('Ошибка при входе:', error); } }; return ( Вход
Восстановить пароль
); }; export default SignIn;