import { useState } from "react"; import { useNavigate } from "react-router"; import client from "~/api/client"; import { useUserStore } from "~/hooks/user"; export default function LoginPage() { const user = useUserStore((state) => state.user); const setUser = useUserStore((state) => state.setUser); const [error, setError] = useState(false); const navigator = useNavigate(); async function login(event: React.FormEvent) { event.preventDefault(); const formData = new FormData(event.currentTarget); let username = formData.get("username"); let password = formData.get("password"); let [newUser, status] = await client.POST("/login", { body: { username: username as string, password: password as string, }, }); if (status === 200) { setUser(newUser); navigator("/"); } else { setError(true); } } return (
{user !== null ? (

You are already logged in.

) : ( <>

Login

{error && (

An error occurred. Please try again.

)}
)}
); }