"use client"; import { useCallback } from "react"; import { QueryProvider } from "yt-dlp-transcript-common/components/QueryProvider"; import { useStats } from "yt-dlp-transcript-common/components/statsCache"; import { useSummaries } from "yt-dlp-transcript-common/components/summariesCache"; import { ChartsDashboard } from "yt-dlp-transcript-common/components/charts/ChartsDashboard"; import { PRESET_GROUPS, type ChartTemplates, type Dashboard, } from "yt-dlp-transcript-common/lib/chartConfig"; import { saveDefaultDashboardAction } from "../lib/chartsActions"; function Inner({ templates, siteId, }: { templates: ChartTemplates; siteId: string; }) { const { stats, ready, loadedPages, pageCount, manifest, error } = useStats(); const { summaries } = useSummaries(); const onPersist = useCallback( (dashboard: Dashboard) => { void saveDefaultDashboardAction(siteId, dashboard); }, [siteId], ); if (error) { return (
Failed to load the stats dataset ({error.message}). Run{" "} Build index under Pool on the Sites page first — it builds the stats datasets too.
); } if (!ready) { return (Loading stats… {pageCount > 0 ? `(${loadedPages}/${pageCount} pages)` : ""}
); } const channels = (manifest?.channels ?? []).map((c) => ({ slug: c.slug, name: c.name, })); return (