import { gql } from '@apollo/client'; import { Stack } from '@chakra-ui/react'; import { BooksListQuery } from '@generated/types'; import { useState } from 'react'; import { Pagination } from '../components/Pagination'; import { WorkingList } from '../components/WorkingList'; import { ListSearch } from '../components/ListSearch'; import { bookFragment } from '../fragments'; import { usePaginatedQuery } from '../hooks/usePaginatedQuery'; import { PaginatedListSkeleton } from './PaginatedListSkeleton'; export function BookSearchList() { const [workingSearchValue, setWorkingSearchValue] = useState(''); const [workingsListPage, setWorkingsListPage] = useState(1); const [workingsListPageSize, setWorkingsListPageSize] = useState(10); const startIndex = (workingsListPage - 1) * workingsListPageSize; const { data } = usePaginatedQuery({ query, input: { filter: { terms: workingSearchValue, offset: startIndex, size: workingsListPageSize } } }); return ( <> setWorkingSearchValue(value)} /> {data != null ? ( <> {data.bookMany.total > workingsListPageSize && ( )} ) : ( )} ); } const query = gql` query BooksList($input: BookManyInput!) { bookMany(input: $input) { items { ...Book } total } } ${bookFragment} `;