import { ChangeEvent, TargetedEvent, useState } from "preact/compat"; import { createAccountService, loginService } from "../../services"; import { useLocation, useNavigate } from "react-router-dom"; import { useDispatch } from "react-redux"; import { authAdded } from "../../features/auth/authSlice/authSlice"; import './index.css'; function Login() { const dispatch = useDispatch(); const { state } = useLocation() const [form, setFrom] = useState({ username: '', password: '' }) const [errorMsg, setErrorMsg] = useState([{ field: '', msg: '' }]) const navigation = useNavigate() async function handleSignIn(e: TargetedEvent) { e.preventDefault(); try { const res = await loginService({ username: form.username, password: form.password }) if(res.error) { if (res.error.response.status == 400) { setErrorMsg(res.error.response.data.errors) return } alert(res.error.response.data.message) return } dispatch(authAdded(res.data)) if (state) { navigation(state.from) return } navigation("/") } catch (err) { console.log(err) } } async function handleSignUp(e: TargetedEvent) { e.preventDefault(); try { const res = await createAccountService({ username: form.username, password: form.password }) if (res.error) { setErrorMsg(res.error.response.data.errors) return; } dispatch(authAdded(res.data)) if (state) { navigation(state.from) return } navigation("/") } catch (err) { alert(err) } } function onChangeInput(e: ChangeEvent) { const val = e.target as HTMLInputElement; setFrom({ ...form, [val.placeholder]: val.value }) } return (

Sign in

username:
password:
{errorMsg.map(x => (

{x.msg}

))} Forgout account ?

Create Account

username:
password:
{errorMsg.map(x => (

{x.msg}

))}
) } export default Login;