"use client";
import Link from "next/link";
import { useMemo, useState } from "react";
import clsx from "clsx";
import { api, type Dataset } from "@/lib/api";
import { useAsync } from "@/lib/hooks";
import { fmtBytes, fmtCompact, fmtInt } from "@/lib/format";
import { Card, ErrorState, PageHeader, Skeleton, StatusBadge, Tabs } from "@/components/ui";
const ORDER = ["active", "paused", "pending_configuration", "planned", "unsupported"];
export default function DatasetsPage() {
const { data, error, loading, reload } = useAsync((s) => api.get<{ data: Dataset[] }>("/catalog/datasets", undefined, s), []);
const [filter, setFilter] = useState<"all" | "active" | "other">("all");
const rows = useMemo(() => {
const r = (data?.data ?? []).slice().sort((a, b) => ORDER.indexOf(a.status) - ORDER.indexOf(b.status) || a.id.localeCompare(b.id));
if (filter === "active") return r.filter((d) => d.status === "active");
if (filter === "other") return r.filter((d) => d.status !== "active");
return r;
}, [data, filter]);
return (
<>
{d.description}
}