import { FormEvent } from "react"; import { useNavigate } from "react-router-dom"; //type setUser = { setUser: { func: React.Dispatch> } }; type user = { set: React.Dispatch>; value: string | null; }; export default function Login({ user }: { user: user }) { const navigate = useNavigate(); const handleSubmit = async (e: FormEvent) => { e.preventDefault(); //stops submit from happening const target = e.target as typeof e.target & { username: { value: string }; email: { value: string }; password: { value: string }; }; const formData = new FormData(); formData.append("username", target.username.value); formData.append("password", target.password.value); const response = await fetch( `${import.meta.env.VITE_API_TITLE}/api/v1/login`, { credentials: "include", method: "post", body: formData, }, ).then((res) => { if (res.ok) { const url = `${import.meta.env.VITE_API_TITLE}/api/v1/profile`; fetch(url, { credentials: "include", method: "get", }) .then((response) => { if (response.ok) { return response.json(); } throw new Error("Network response was not ok."); }) .then((response) => { user.set(response.username); console.log("USER:"); console.log(user); console.log(user.value); console.log(response.username); navigate("/"); }); } else { console.log(response); alert("check console for error"); } }); }; return ( <>
); }