Show channel counts in the left CategoryNav sidebar (Feed/Channels/Saved)

Same "channels per category" counts as the categories management page,
now next to each button in the sidebar used across all three pages.
Categories already carry channel_count; "Все"/"Без категории" counts are
derived client-side from one extra unfiltered channels query, reused
across the three pages via a shared ['channels', 'all-for-counts'] key.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
vrubelroman 2026-09-16 20:38:06 +00:00
parent cdb1c2ded2
commit 44f81f0f0d
5 changed files with 62 additions and 6 deletions

View file

@ -12,6 +12,13 @@ function Channels() {
const categoriesQuery = useQuery({ queryKey: ['categories'], queryFn: listCategories })
const allChannelsQuery = useQuery({
queryKey: ['channels', 'all-for-counts'],
queryFn: () => listChannels({ subscribed: true }),
})
const allChannels = allChannelsQuery.data ?? []
const uncategorizedCount = allChannels.filter((c) => c.category_ids.length === 0).length
const channelsQuery = useQuery({
queryKey: ['channels', filter],
queryFn: () =>
@ -74,7 +81,13 @@ function Channels() {
)}
<div className="layout">
<CategoryNav categories={categories} value={filter} onChange={setFilter} />
<CategoryNav
categories={categories}
value={filter}
onChange={setFilter}
allCount={allChannels.length}
uncategorizedCount={uncategorizedCount}
/>
<div className="content">
<input