import { Box, Button, Grid, Paper, Typography } from '@mui/material'; import { useTranslation } from 'next-i18next'; import { useRouter } from 'next/router'; import { useState } from 'react'; import { SINGLE_DATA_PAGE } from '../../../constants/pages'; import useDebounce from '../../../hooks/use-debounce'; import { usePagination } from '../../../hooks/use-pagination'; import { compare } from '../../../utils/helpers/sortHelpers'; import DataCard from '../../cards/data-card/DataCard'; import FilterSortComponent from '../filter-sort/FilterSortComponent'; const PaginationComponentRQ = () => { const [pageIndex, setPageIndex] = useState(1); const [filter, setFilter] = useState(''); const [sort, setSort] = useState(''); const { t } = useTranslation('pagination'); const { data: paginationData } = usePagination(pageIndex); const router = useRouter(); const debouncedFilter = useDebounce(filter, 500); const handleFilterChange = (event) => { const filterText = event.target.value; setFilter(filterText); }; const handleSortChange = (event) => { const sort = event.target.value; setSort(sort); }; const loadSingleDataHandler = (id) => { router.push(`${SINGLE_DATA_PAGE}${id}`); }; const dataToDisplay = paginationData?.data .filter((item) => item.name.toLowerCase().startsWith(debouncedFilter.toLowerCase()) ) .sort((a, b) => compare(a.name, b.name, sort)) .map((item, index) => ( // ! DON'T USE index for key, this is for example only )); return ( {t('Title')} {dataToDisplay} ); }; export default PaginationComponentRQ;