import type { Metadata } from "next"; import Link from "next/link"; import { CatalogStatus, membership } from "@/components/catalogs"; import { ActionForm, SubmitButton } from "@/components/forms"; import { PageHeader, Tag } from "@/components/status"; import { DateTime } from "@/components/time"; import { Card, CardContent } from "@/components/ui/card"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"; import { api, unwrap } from "@/lib/api"; import { decideCatalog } from "../actions"; import { ConsoleNav, requireConsole } from "../console-nav"; export const metadata: Metadata = { title: "Catalogs" }; export default async function ConsoleCatalogs() { await requireConsole("/console/catalogs"); const { catalogs, moderator } = unwrap(await api.console.catalogs.get()); return ( <> {moderator ? "Every registered catalog." : "Catalogs you're on the team of."} {catalogs.length === 0 ? (

None registered.

) : ( Name Address Access Registered Status {moderator && } {catalogs.map((c) => ( {c.name} {" "} {c.mine ? owner : c.team ? team : null} {c.url} {c.visibility}, {membership[c.membership]?.toLowerCase() ?? c.membership} {moderator && ( {(c.status === "pending" || c.status === "rejected") && (
Approve {c.status !== "rejected" && ( Reject )}
)}
)}
))}
)}
); }