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:
parent
cdb1c2ded2
commit
44f81f0f0d
5 changed files with 62 additions and 6 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue