"use client"; import { createClient } from "@/lib/supabase/client"; import { api } from "@/lib/api"; import { useRouter } from "next/navigation"; import { useState } from "react"; export default function RegisterPage() { const [email, setEmail] = useState(""); const [password, setPassword] = useState(""); const [firmName, setFirmName] = useState(""); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const router = useRouter(); const supabase = createClient(); async function handleRegister(e: React.FormEvent) { e.preventDefault(); setLoading(true); setError(null); // 1. Create auth user const { data, error: authError } = await supabase.auth.signUp({ email, password, options: { emailRedirectTo: `${window.location.origin}/callback`, }, }); if (authError) { setError(authError.message); setLoading(false); return; } // 2. Create tenant via backend (the backend adds the user as owner) if (data.session) { try { await api.post("/tenants", { name: firmName }); } catch (err: unknown) { const apiErr = err as { error?: string }; setError(apiErr.error || "Kanzlei konnte nicht erstellt werden"); setLoading(false); return; } router.push("/"); router.refresh(); } else { // Email confirmation required router.push("/login"); } setLoading(false); } return (

KanzlAI

Erstellen Sie Ihr Konto

setFirmName(e.target.value)} required className="mt-1 block w-full rounded-md border border-neutral-300 px-3 py-2 text-sm placeholder-neutral-400 focus:border-neutral-900 focus:outline-none focus:ring-1 focus:ring-neutral-900" placeholder="Muster & Partner Rechtsanwaelte" />
setEmail(e.target.value)} required className="mt-1 block w-full rounded-md border border-neutral-300 px-3 py-2 text-sm placeholder-neutral-400 focus:border-neutral-900 focus:outline-none focus:ring-1 focus:ring-neutral-900" placeholder="anwalt@kanzlei.de" />
setPassword(e.target.value)} required minLength={8} className="mt-1 block w-full rounded-md border border-neutral-300 px-3 py-2 text-sm placeholder-neutral-400 focus:border-neutral-900 focus:outline-none focus:ring-1 focus:ring-neutral-900" />

Mindestens 8 Zeichen

{error && (

{error}

)}

Bereits registriert?{" "} Anmelden

); }