"use client"; import { useState, useTransition } from "react"; import { useRouter } from "next/navigation"; import { formatDate, nightsBetween } from "@/lib/utils"; import type { InquiryStatus } from "@/types"; import { INQUIRY_STATUS_LABELS } from "@/types"; export interface InquiryRowData { id: string; apartmentName: string; arrival: string; departure: string; guests: number; name: string; email: string; phone: string | null; message: string; status: InquiryStatus; createdAt: string; } const statusClasses: Record = { new: "bg-moss-500 text-parchment", read: "bg-ink/10 text-ink", confirmed: "bg-moss-700 text-parchment", declined: "bg-red-100 text-red-800", archived: "bg-ink/5 text-ink/60", }; export function InquiryRow({ inquiry }: { inquiry: InquiryRowData }) { const router = useRouter(); const [open, setOpen] = useState(false); const [status, setStatus] = useState(inquiry.status); const [pending, startTransition] = useTransition(); const [saving, setSaving] = useState(false); async function updateStatus(next: InquiryStatus) { setSaving(true); try { const res = await fetch(`/api/admin/inquiries/${inquiry.id}`, { method: "PATCH", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ status: next }), }); if (!res.ok) throw new Error(); setStatus(next); startTransition(() => router.refresh()); } catch { alert("Konnte Status nicht speichern."); } finally { setSaving(false); } } async function remove() { if (!confirm("Anfrage wirklich löschen? Das kann nicht rückgängig gemacht werden.")) return; const res = await fetch(`/api/admin/inquiries/${inquiry.id}`, { method: "DELETE" }); if (res.ok) router.refresh(); } const nights = nightsBetween(inquiry.arrival, inquiry.departure); return (
  • {open && (
    {inquiry.phone && (
    Telefon
    {inquiry.phone}
    )}
    Zeitraum
    {formatDate(inquiry.arrival)} – {formatDate(inquiry.departure)} ({nights} N)
    Eingegangen
    {formatDate(inquiry.createdAt)}
    Nachricht

    {inquiry.message || (keine Nachricht)}

    Antworten
    )}
  • ); }