'use client'; import { useCallback } from 'react'; import ConceptSearch from '@/components/Common/ConceptSearch'; import { useConceptNavigation } from '@/context/NagivationContext'; import { ILibraryFilter } from '@/models/miscelanious'; import { LibraryFilterStrategy } from '@/models/miscelanious'; import PickerStrategy from './PickerStrategy'; interface SearchPanelProps { total: number filtered: number setFilter: React.Dispatch> query: string setQuery: React.Dispatch> strategy: LibraryFilterStrategy } function SearchPanel({ total, filtered, query, setQuery, strategy, setFilter }: SearchPanelProps) { const router = useConceptNavigation(); function handleChangeQuery(newQuery: string) { setQuery(newQuery); setFilter(prev => ({ query: newQuery, is_owned: prev.is_owned, is_common: prev.is_common, is_canonical: prev.is_canonical, is_subscribed: prev.is_subscribed, is_personal: prev.is_personal })); } const handleChangeStrategy = useCallback( (value: LibraryFilterStrategy) => { if (value !== strategy) { router.push(`/library?filter=${value}`); } }, [strategy, router]); return (
Фильтр {filtered} из {total}
); } export default SearchPanel;