From c05759901ae1d867571581db9483c32d2fdde7a6 Mon Sep 17 00:00:00 2001 From: Ivan <8611739+IRBorisov@users.noreply.github.com> Date: Wed, 11 Jun 2025 11:00:40 +0300 Subject: [PATCH] F: Filter out users without schemas --- .../features/library/pages/library-page/toolbar-search.tsx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/rsconcept/frontend/src/features/library/pages/library-page/toolbar-search.tsx b/rsconcept/frontend/src/features/library/pages/library-page/toolbar-search.tsx index 99c04b64..af1f018f 100644 --- a/rsconcept/frontend/src/features/library/pages/library-page/toolbar-search.tsx +++ b/rsconcept/frontend/src/features/library/pages/library-page/toolbar-search.tsx @@ -20,6 +20,7 @@ import { cn } from '@/components/utils'; import { prefixes } from '@/utils/constants'; import { tripleToggleColor } from '@/utils/utils'; +import { useLibrarySuspense } from '../../backend/use-library'; import { IconItemVisibility } from '../../components/icon-item-visibility'; import { IconLocationHead } from '../../components/icon-location-head'; import { describeLocationHead, labelLocationHead } from '../../labels'; @@ -33,6 +34,7 @@ interface ToolbarSearchProps { } export function ToolbarSearch({ className, total, filtered }: ToolbarSearchProps) { + const { items } = useLibrarySuspense(); const userMenu = useDropdown(); const headMenu = useDropdown(); @@ -58,6 +60,10 @@ export function ToolbarSearch({ className, total, filtered }: ToolbarSearchProps const userActive = isOwned !== null || isEditor !== null || filterUser !== null; + function filterNonEmptyUsers(userID: number): boolean { + return items.some(item => item.owner === userID); + } + function handleChange(newValue: LocationHead | null) { headMenu.hide(); setHead(newValue); @@ -114,6 +120,7 @@ export function ToolbarSearch({ className, total, filtered }: ToolbarSearchProps placeholder='Выберите владельца' noBorder className='min-w-60 mx-1 mb-1' + filter={filterNonEmptyUsers} value={filterUser} onChange={setFilterUser} />