import Link from "next/link"; import { ListTree } from "lucide-react"; import { requireAdmin } from "@/lib/session"; import { CONCRETE_NETWORKS, PROVIDER_IDS, getRequestFilterOptions, listRequests, requestFiltersFromParams, str } from "@/lib/queries/admin"; import { formatBytes, formatMs, formatNumber, formatUsd } from "@/lib/format"; import { PageHeader } from "@/components/ui/page-header"; import { StatusBadge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Input, NativeSelect } from "@/components/ui/input"; import { Field, Label } from "@/components/ui/label"; import { EmptyState } from "@/components/ui/empty-state"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"; import { DateCell, Mono, NetworkBadge, Pagination, Panel, ProviderBadge, numCell } from "@/components/admin/primitives"; export const dynamic = "force-dynamic"; export default async function AdminRequestsPage({ searchParams }: { searchParams: Promise> }) { await requireAdmin(); const sp = await searchParams; const f = requestFiltersFromParams(sp); const [data, opts] = await Promise.all([listRequests(f), getRequestFilterOptions()]); const params: Record = { org: f.org, project: f.project, domain: f.domain, status: f.status, provider: f.provider, network: f.network, country: f.country, source: f.source, errorCode: f.errorCode, from: f.from, to: f.to, id: f.id, }; const active = Object.values(params).filter(Boolean).length; return ( <> Clear {active} : null}>
{opts.orgs.map((o) => ( ))} {PROVIDER_IDS.map((p) => ( ))} {CONCRETE_NETWORKS.map((n) => ( ))} {opts.errorCodes.map((c) => ( ))}
Times are interpreted in the server timezone.
{data.total === 0 ? (
) : ( <> Request Org / project Domain Status Network Providers Geo Att. Latency Bytes Cost Price When {data.rows.map((r) => ( {r.id}
{r.source}
{r.orgName ?? r.organizationId}
{r.projectName ?? r.projectId}
{r.domain}
{r.httpStatus ? {r.httpStatus} : null}
{r.errorCode ?
{r.errorCode}
: null}
{r.requestedNetwork !== r.network ?
asked {r.requestedNetwork}
: null}
{r.providers ? r.providers.split(",").map((p, i) => ) : —}
{r.country ?? "—"} {r.attempts} {formatMs(r.latencyMs)} {formatBytes(r.bytesIn)} {formatUsd(r.costUsd, true)} {formatUsd(r.priceUsd, true)}
))}
)}
{str(sp.page) && data.rows.length === 0 && data.total > 0 ?

This page is empty — go back to page 1.

: null} ); }