"use client"; import { useTransition } from "react"; import { Mail } from "lucide-react"; import { toast } from "sonner"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import type { FamilyInvitationView } from "@/lib/family-invitation-view"; import { resendFamilyInvitationAction } from "./actions"; const labels = { active: "Konto aktiviert", open: "Aktivierung offen", sending: "Versand läuft", sent: "Einladung versendet", failed: "Versand fehlgeschlagen", expired: "Einladung abgelaufen", }; export function InvitationStatus({ userId, name, invitation, blocked = false, }: { userId: string; name: string; invitation: FamilyInvitationView; blocked?: boolean; }) { const [pending, startTransition] = useTransition(); return (
{labels[invitation.status]} {invitation.status !== "active" && ( <> {invitation.expiresAt && ( {invitation.status === "expired" ? "Gültig gewesen bis" : "Link gültig bis"}{" "} {new Intl.DateTimeFormat("de-DE", { dateStyle: "short", timeZone: "Europe/Berlin", }).format(new Date(invitation.expiresAt))} )} )}
); }