import type { Metadata } from "next"; import Link from "next/link"; import { PageHeader, Tag } from "@/components/status"; import { DateTime } from "@/components/time"; import { Button } from "@/components/ui/button"; import { Card, CardContent } from "@/components/ui/card"; import { Input } from "@/components/ui/input"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"; import { api, unwrap } from "@/lib/api"; import { ConsoleNav, requireModerator } from "../console-nav"; export const metadata: Metadata = { title: "People" }; export default async function People({ searchParams }: { searchParams: Promise<{ q?: string | string[] }> }) { const raw = (await searchParams).q; const q = typeof raw === "string" ? raw.slice(0, 64) : ""; await requireModerator(q ? `/console/people?q=${encodeURIComponent(q)}` : "/console/people"); const { people } = unwrap(await api.console.people.get({ query: q ? { q } : {} })); return ( <>
{people.length === 0 ? (

Nobody found.

) : ( Username Role Link cap Joined {people.map((p) => ( {p.username} {p.role} {p.linkCap} {p.banned && banned} ))}
)}
); }