import { Link, useNavigate } from "@tanstack/react-router"; import axios from "axios"; import { toast } from "sonner"; import { CardContent, CardDescription, CardHeader, CardTitle, } from "../../../../components/ui/card"; import { LstCard } from "../../../../components/ui/lstCard"; import { getSession, useAuth, useUserRoles } from "../../../../lib/authClient"; import { useAppForm } from "../../../../lib/formStuff"; export default function LoginForm({ redirectPath }: { redirectPath: string }) { //const search = useSearch({ from: "/_app/(auth)/login" }); const username = localStorage.getItem("username") || ""; const rememberMe = localStorage.getItem("rememberMe") === "true"; const { setSession } = useAuth(); const { fetchRoles } = useUserRoles(); const navigate = useNavigate(); const form = useAppForm({ defaultValues: { username: username, password: "", rememberMe: rememberMe, }, onSubmit: async ({ value }) => { if (value.rememberMe) { localStorage.setItem("rememberMe", value.rememberMe.toString()); localStorage.setItem("username", value.username); } else { localStorage.removeItem("rememberMe"); localStorage.removeItem("username"); } try { await axios.post("/lst/api/user/login", { username: value.username.toLowerCase(), password: value.password, }); const session = await getSession(); setSession(session); form.reset(); fetchRoles(); toast.success( `Welcome back ${session?.user.name ? session?.user.name : session?.user.username} `, ); //router.invalidate(); if (redirectPath.includes("profile")) { navigate({ to: "/" }); } else { navigate({ to: redirectPath }); } } catch (error) { // @ts-ignore if (!error.response.data.success) { // @ts-ignore toast.error(error?.response?.data.message); } else { // @ts-ignore toast.error(error?.message); } } }, }); return (