"use client"; import { zodResolver } from "@hookform/resolvers/zod"; import { signIn } from "next-auth/react"; import Link from "next/link"; import { redirect, useSearchParams } from "next/navigation"; import { useState } from "react"; import { useForm } from "react-hook-form"; import { Toaster, toast } from "react-hot-toast"; import { z } from "zod"; import { Button } from "../../../_components/ui/Button"; import { useErrorBoundary } from "react-error-boundary"; export const Login = () => { const { showBoundary } = useErrorBoundary(); const [isLoading, setIsLoading] = useState(false); const searchParams = useSearchParams(); const schema = z.object({ email: z.string().email(), password: z.string(), }); type schemaType = z.infer; const form = useForm({ resolver: zodResolver(schema), }); return (
{ setIsLoading(true); try { const data = await signIn("credentials", { redirect: false, email: form.getValues("email").toLowerCase(), password: form.getValues("password"), }); setIsLoading(false); if (!data || data.error) { toast.error("E-Mail / Passwort ist falsch!", { style: { background: "var(--color-base-100)", color: "var(--color-base-content)", }, }); return; } redirect(searchParams.get("redirect") || "/"); } catch (error) { showBoundary(error); } })} >

Login

Noch keinen Account? Zur{" "} Registrierung
Du warst bereits Nutzer der V1?
Melde dich mit deinen alten Zugangsdaten an.

{typeof form.formState.errors.email?.message === "string" ? form.formState.errors.email.message : ""}

Passwort vergessen?
); };