import { Group, Stack, Text } from '@mantine/core'; import { useDebouncedValue, useDisclosure } from '@mantine/hooks'; import { DataTable, DeleteItemModal, SettingsHeader } from 'components'; import { SearchHistoryColumns } from 'components/Columns/SearchHistoryColumns'; import { useCommonHooks, useQueryAPI } from 'hooks'; import { useEffect, useState } from 'react'; import { textClasses } from 'styles'; import type { SearchHistoryItem } from 'types'; const SearchHistory = () => { const searchEndpoint = 'api/searchHistory'; const { data: historyData, isFetched: historyDataIsFetched, isFetching: historyDataIsFetching, } = useQueryAPI({ endpoint: searchEndpoint, }); const [searchHistory, setSearchHistory] = useState([]); const [searchValue, setSearchValue] = useState(''); const [searchHistoryItem, setSearchHistoryItem] = useState(); const [debouncedSearch] = useDebouncedValue(searchValue, 500); const [isLoading, setIsLoading] = useState(false); const { isMobile, handleDelete } = useCommonHooks(); const [filtersEnabled, setFiltersEnabled] = useState(false); const [globalFilter, setGlobalFilter] = useState(''); const [modalOpened, { open: openModal, close: closeModal }] = useDisclosure(false); const handleClose = () => { closeModal(); }; const [sorting, setSorting] = useState([ { id: 'dateTimeStamp', desc: true, }, ]); useEffect(() => { if (historyData && historyDataIsFetched) { setSearchHistory(historyData); } }, [historyData, historyDataIsFetched]); useEffect(() => { setGlobalFilter(debouncedSearch); if (debouncedSearch === globalFilter) { setIsLoading(false); } }, [debouncedSearch, globalFilter]); return ( handleDelete(searchHistoryItem, 'api/searchHistory')} title={'Delete Search History Item'} body={ Are you sure you want to delete this Search History Item? {`${searchHistoryItem?.provider}`} {`"${searchHistoryItem?.searchTerm}"`} This action cannot be undone! } /> ); }; export default SearchHistory;