import React from 'react'; import { useNavigate } from 'react-router-dom'; import { useDispatch } from 'react-redux'; import { Button, Paper, TextField, Typography } from '@mui/material'; import { useForm } from 'react-hook-form'; import { setGuest } from '../slices/auth/guestSlice'; import { useLoginGuestMutation } from '../slices/api/guestSlice'; import Status from './Status'; import { open } from '../slices/snackbarSlice'; import { isFetchBaseQueryError } from '../error'; import type { Data } from '../error'; import type { Name } from '../models'; function GuestLogin() { const dispatch = useDispatch(); const navigate = useNavigate(); const [login] = useLoginGuestMutation(); const { register, handleSubmit, formState: { errors }, } = useForm({ defaultValues: { firstName: '', lastName: '', }, }); const onSubmit = async (data: Name) => { try { dispatch(setGuest(await login(data).unwrap())); navigate('/rsvp'); } catch (error) { if (isFetchBaseQueryError(error)) { dispatch( open({ message: (error.data as Data).message, severity: 'error', }) ); } else { dispatch( open({ message: 'No response', severity: 'error', }) ); } } }; return (
Guest Login
); } export default GuestLogin;