import Link from "next/link"; import { ExternalLink, FileCheck2 } from "lucide-react"; import { getWorkspace } from "@/lib/session"; import { listLegalAcceptances } from "@/lib/queries/account"; import { formatDate } from "@/lib/format"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"; import { EmptyState } from "@/components/ui/empty-state"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; export const dynamic = "force-dynamic"; const DOCUMENTS: Record = { terms: { label: "Terms of Service", href: "/legal/terms" }, privacy: { label: "Privacy Policy", href: "/legal/privacy" }, acceptable_use: { label: "Acceptable Use Policy", href: "/legal/acceptable-use" }, }; export default async function LegalPage() { const ws = await getWorkspace(); const rows = await listLegalAcceptances(ws.user.id); return (

Accepted documents

Every version you agreed to, with the time and IP address recorded at acceptance.

{rows.length === 0 ? ( ) : (
Document Version Accepted IP address {rows.map((r) => { const doc = DOCUMENTS[r.document]; return ( {doc ? ( {doc.label} ) : ( {r.document} )} {r.version} {formatDate(r.acceptedAt)} {r.ipAddress ?? "—"} ); })}
)}
Current documents The versions in force today. We email you before material changes take effect.
    {Object.values(DOCUMENTS).map((d) => (
  • {d.label}
  • ))}

Data processing questions: privacy@fetcha.co

); }