import type { AgGridReact as AgGridReactType } from '@ag-grid-community/react/lib/agGridReact'; import { Flex, Group, Stack } from '@mantine/core'; import debounce from 'lodash/debounce'; import { ChangeEvent, MutableRefObject } from 'react'; import { generatePath, Link, useParams, useSearchParams } from 'react-router-dom'; import { useCurrentServer } from '../../../store/auth.store'; import { LibraryItem } from '/@/renderer/api/types'; import { Button, PageHeader, SearchInput } from '/@/renderer/components'; import { FilterBar, LibraryHeaderBar } from '/@/renderer/features/shared'; import { useContainerQuery } from '/@/renderer/hooks'; import { useListFilterRefresh } from '/@/renderer/hooks/use-list-filter-refresh'; import { AppRoute } from '/@/renderer/router/routes'; interface SearchHeaderProps { navigationId: string; tableRef: MutableRefObject; } export const SearchHeader = ({ tableRef, navigationId }: SearchHeaderProps) => { const { itemType } = useParams() as { itemType: LibraryItem }; const [searchParams, setSearchParams] = useSearchParams(); const cq = useContainerQuery(); const server = useCurrentServer(); const { handleRefreshTable } = useListFilterRefresh({ itemType, server, }); const handleSearch = debounce((e: ChangeEvent) => { if (!e.target.value) return; setSearchParams({ query: e.target.value }, { replace: true, state: { navigationId } }); handleRefreshTable(tableRef, { searchTerm: e.target.value }); }, 200); return ( Search ); };