"use client"; import { Suspense, useState } from "react"; import { useSearchParams, useRouter } from "next/navigation"; import { UsageStats, RequestLogger, CardSkeleton, SegmentedControl } from "@/shared/components"; import RequestDetailsTab from "./components/RequestDetailsTab"; export default function UsagePage() { return ( }> ); } function UsageContent() { const searchParams = useSearchParams(); const router = useRouter(); const [tabLoading, setTabLoading] = useState(false); const tabFromUrl = searchParams.get("tab"); const activeTab = tabFromUrl && ["overview", "logs", "details"].includes(tabFromUrl) ? tabFromUrl : "overview"; const handleTabChange = (value) => { if (value === activeTab) return; setTabLoading(true); const params = new URLSearchParams(searchParams); params.set("tab", value); router.push(`/dashboard/usage?${params.toString()}`, { scroll: false }); // Brief loading flash so user sees feedback setTimeout(() => setTabLoading(false), 300); }; return (
{tabLoading ? ( ) : ( <> {activeTab === "overview" && ( }> )} {activeTab === "logs" && } {activeTab === "details" && } )}
); }