import type { Metadata } from 'next'
import { redirect } from 'next/navigation'
import { ShieldCheck } from 'lucide-react'
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'
import { aktuellerBenutzer } from '@/lib/auth/sitzung'
import { db } from '@/lib/db'
import { passkeysMoeglich } from '@/lib/auth/passkey'
import { PasskeyAnmeldung } from '@/components/passkey-anmeldung'
import { AnmeldeFormular } from './formular'
export const metadata: Metadata = { title: 'Anmelden' }
/** Fachdaten dürfen nie aus einem Cache kommen. */
export const dynamic = 'force-dynamic'
export default async function AnmeldenSeite({
searchParams,
}: {
searchParams: Promise<{ weiter?: string }>
}) {
// Wer schon angemeldet ist, soll nicht am Anmeldeformular hängen bleiben.
if (await aktuellerBenutzer()) redirect('/heute')
// Gibt es überhaupt schon einen Zugang? Beim allerersten Start nicht.
const anzahlBenutzer = await db.user.count({ where: { geloeschtAm: null } })
if (anzahlBenutzer === 0) redirect('/ersteinrichtung')
const { weiter = '/heute' } = await searchParams
return (
<>
Hier liegen Gesundheits- und Vermögensdaten einer betreuten Person. Der zweite Faktor ist deshalb Pflicht und lässt sich nicht abschalten. Ein Passkey erfüllt ihn ebenfalls: Er verlangt Fingerabdruck, Gesicht oder Geräte-PIN — und lässt sich, anders als ein abgetippter Code, nicht auf einer nachgebauten Seite abgreifen.