From ec7c7a859867117bf6f958656dda75da26500f85 Mon Sep 17 00:00:00 2001 From: Konstantin Wohlwend Date: Fri, 19 Jun 2026 13:58:42 -0700 Subject: [PATCH] Dormant toggle --- .../platform-analytics/page-client.tsx | 46 +++++++++++++++---- 1 file changed, 37 insertions(+), 9 deletions(-) diff --git a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/platform-analytics/page-client.tsx b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/platform-analytics/page-client.tsx index 3461583cb..86ed3e4bf 100644 --- a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/platform-analytics/page-client.tsx +++ b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/platform-analytics/page-client.tsx @@ -446,6 +446,7 @@ type SortKey = "total_users" | "verified" | "active_users" | "signups" | "signup function ProjectLeaderboard({ projects, windowDays }: { projects: ProjectRow[], windowDays: number }) { const [sortKey, setSortKey] = useState("total_users"); const [search, setSearch] = useState(""); + const [showDormant, setShowDormant] = useState(false); const sorted = useMemo(() => { const value = (p: ProjectRow): number => { @@ -472,10 +473,16 @@ function ProjectLeaderboard({ projects, windowDays }: { projects: ProjectRow[], }; const q = search.trim().toLowerCase(); return projects + .filter((p) => showDormant || projectStatus(p, windowDays) !== "Dormant") .filter((p) => q === "" || p.display_name.toLowerCase().includes(q) || p.id.toLowerCase().includes(q)) .slice() .sort((a, b) => value(b) - value(a)); - }, [projects, sortKey, search]); + }, [projects, sortKey, search, showDormant, windowDays]); + + const dormantCount = useMemo( + () => projects.filter((p) => projectStatus(p, windowDays) === "Dormant").length, + [projects, windowDays], + ); const header = (key: SortKey, label: string) => ( + setSearch(e.target.value)} + placeholder="Search projects" + className="w-48 rounded-lg border border-border/60 bg-transparent px-2.5 py-1 text-xs outline-none focus:border-foreground/30" + /> +