import PrimaryButton from "@/components/button/PrimaryButton";
import PasswordInput from "@/components/input/PasswordInput";
import TextInput from "@/components/input/TextInput";
import { useAuth } from "@/providers/AuthProvider";
import { useTimedModal } from "@/providers/TimedModalProvider";
import { Link, Navigate, useNavigate } from "react-router";
export default function LoginPage(){
const { jwt, setTokenData } = useAuth();
const navigate = useNavigate();
const { addSuccessMessage, addErrorMessage } = useTimedModal();
const login = async (formData: FormData) => {
const username = formData.get("username") as string;
const password = formData.get("password") as string;
await fetch(`${import.meta.env.VITE_API_URL}/auth/token`, {
method: "GET",
headers: {
Authorization: "Basic " + btoa(`${username}:${password}`)
},
credentials: "include"
})
.then(async (response) => {
if(response.status === 200){
addSuccessMessage("Logged in successfully");
const json = await response.json();
setTokenData(json);
navigate("/raidGroup");
}
else{
addErrorMessage("Failed to log in: " + ((await response.json()).errors as string[]).join(",\n"));
}
})
.catch(error => {
addErrorMessage("Failed to log in: " + error);
});
}
if(jwt){
return ;
}
return (
);
}