import Avatar from '@mui/material/Avatar';
import Button from '@mui/material/Button';
import CssBaseline from '@mui/material/CssBaseline';
import TextField from '@mui/material/TextField';
import FormControlLabel from '@mui/material/FormControlLabel';
import Checkbox from '@mui/material/Checkbox';
import Link from '@mui/material/Link';
import Grid from '@mui/material/Grid';
import Box from '@mui/material/Box';
import LockOutlinedIcon from '@mui/icons-material/LockOutlined';
import Typography from '@mui/material/Typography';
import Container from '@mui/material/Container';
import { createTheme, ThemeProvider } from '@mui/material/styles';
import { lightGreen } from '@mui/material/colors';
import { categoriesApi, useGetLoginMutation } from '../../store/categoriesApi';
import { useDispatch, useSelector } from 'react-redux';
import { setCredentials } from '../../store/authSlice';
import { Navigate, Link as RoterLink, useNavigate, useLocation } from 'react-router-dom';
import { Alert, Snackbar } from '@mui/material';
import { useState } from 'react';
function jwtDecode(token) {
let result;
try {
let secondPartToken = token.split('.')[1];
result = JSON.parse(atob(secondPartToken));
} catch (e) {
}
return result;
}
const theme = createTheme();
export default function SignIn() {
const navigate = useNavigate()
const location = useLocation()
const fromPage = location.state?.from?.pathname || '/'
console.log(fromPage)
const [open, setOpen] = useState(false);
const handleClose = (event, reason) => {
if (reason === 'clickaway') {
return;
}
setOpen(false);
};
const userAuth = useSelector((state) => state.auth.user)
const dispatch = useDispatch()
const [loginQuery, { isLoading }] = useGetLoginMutation()
const handleSubmit = async (event) => {
event.preventDefault();
const dataForm = new FormData(event.currentTarget);
const { data } = await loginQuery({
login: dataForm.get('email'),
password: dataForm.get('password')
})
if (data) {
const token = data.login
const user = jwtDecode(token)
if (user) {
dispatch(setCredentials({ user, token }))
console.log(user.sub.id)
dispatch( categoriesApi.endpoints.getUserById.initiate(user.sub.id))
navigate(fromPage, {replace: true})
}
else {
setOpen(true)
}
}
};
return (
<>
{userAuth ? :
<>
Вы ввели неправильный логин или пароль!
Войти
}
label="Запомнить меня"
/>
Забыли пароль?
{"У Вас нет аккаунта? Зарегистрироваться"}
>
}
>
);
}