import { Form, useActionData, useNavigation, redirect } from "react-router"; import { login, createUserSession, getUserSession } from "@/session.server"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Calculator, AlertCircle } from "lucide-react"; export async function loader({ request }: { request: Request }) { const { userId } = await getUserSession(request); if (userId) throw redirect("/"); return null; } export async function action({ request }: { request: Request }) { const formData = await request.formData(); const email = formData.get("email") as string; const password = formData.get("password") as string; const user = await login(email, password); if (!user) return { error: "E-Mail oder Passwort falsch." }; return createUserSession(user.id, user.name, "/"); } export default function LoginPage() { const actionData = useActionData(); const navigation = useNavigation(); const loading = navigation.state === "submitting"; return (

Annas Rechnungsmanager

Buchhaltung & Rechnungsverwaltung

Anmelden Geben Sie Ihre Zugangsdaten ein
{actionData?.error && (
{actionData.error}
)}
); }