import React from 'react'; import { useNavigate } from 'react-router-dom'; import { Button, Paper, TextField, Typography } from '@mui/material'; import { useForm } from 'react-hook-form'; import { useAppDispatch } from '../hooks'; import { setAdmin } from '../slices/auth/adminSlice'; import { useLoginAdminMutation } from '../slices/api/adminSlice'; import { showSnackbar } from '../slices/snackbarSlice'; import { isFetchBaseQueryError } from '../error'; import type { Credentials } from '../models'; import type { Data } from '../error'; function GuestLogin() { const dispatch = useAppDispatch(); const navigate = useNavigate(); const [login] = useLoginAdminMutation(); const { register, handleSubmit, formState: { errors }, } = useForm({ defaultValues: { username: '', password: '', }, }); const onSubmit = async (data: Credentials) => { try { dispatch(setAdmin(await login(data).unwrap())); navigate('/dashboard'); } catch (error) { if (isFetchBaseQueryError(error)) { dispatch( showSnackbar({ message: (error.data as Data).message, severity: 'error', }) ); } else { dispatch( showSnackbar({ message: 'No response', severity: 'error', }) ); } } }; return (
Admin Login
); } export default GuestLogin;