import { useEffect, FormEventHandler, useState } from 'react'; import Checkbox from '@/Components/Checkbox'; import GuestLayout from '@/Layouts/GuestLayout'; import InputError from '@/Components/InputError'; import InputLabel from '@/Components/InputLabel'; import PrimaryButton from '@/Components/PrimaryButton'; import TextInput from '@/Components/TextInput'; import { Head, Link, useForm } from '@inertiajs/react'; import { AtSign, Lock, Eye, EyeOff, LogIn, CheckCircle, XOctagon } from 'react-feather'; import FormGroup from '@/Components/FormGroup'; import ProjectBanner from '@/Components/ProjectBanner'; import Modal from '@/Components/Modal'; import axios from 'axios'; import ModalButton from '@/Components/ModalButton'; export default function Login({ status, canResetPassword }: { status?: string, canResetPassword: boolean }) { const { data, setData, processing, errors, reset } = useForm({ username: '', password: '', remember: false, }); useEffect(() => { return () => { reset('password'); }; }, []); const [showPassword, setShowPassword] = useState(false); const toggleShowPassword = () => { setShowPassword((prevShowPassword) => !prevShowPassword); }; const [statusTitle, setStatusTitle] = useState(''); const [feedback, setFeedback] = useState(''); const [isSuccessModalOpen, setIsSuccessModalOpen] = useState(false); const [isErrorModalOpen, setIsErrorModalOpen] = useState(false); const handleCloseSuccessModal = () => { setIsSuccessModalOpen(false); window.location.href = '/login'; }; const submit: FormEventHandler = async (e) => { e.preventDefault(); try { const response = await axios.post(route('login'), data); setStatusTitle('Success') setFeedback(response.data.message); setIsSuccessModalOpen(true); } catch (error) { setStatusTitle('Error') if (axios.isAxiosError(error)) { setFeedback(error.response?.data.message || 'An error occurred'); } else { setFeedback('An unexpected error occurred'); } setIsErrorModalOpen(true); } }; return ( {status &&
{status}
}
An image that represents a login form from StorySet
setData('username', e.target.value)} /> setData('password', e.target.value)} className='border-r-0' />
{canResetPassword && ( Forgot password... )}

No account yet? Register instead.

Log In
setIsSuccessModalOpen(false)} maxWidth="lg" styling='success'>

{ statusTitle }

{ feedback }

Go to Dashboard
setIsErrorModalOpen(false)} maxWidth="lg" styling='error'>

{ statusTitle }

{ feedback }

setIsErrorModalOpen(false)} className="bg-error-main text-white hover:bg-error-hover active:bg-error-pressed"> Close
); }