import { gql } from '@apollo/client'; import { Skeleton, 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 { WorkingListSearch } from '../components/WorkingListSearch'; import { usePaginatedQuery } from '../hooks/usePaginatedQuery'; export function BookSearchList() { const [workingSearchValue, setWorkingSearchValue] = useState(''); const [workingsListPage, setWorkingsListPage] = useState(1); const [workingsListPageSize, setWorkingsListPageSize] = useState(2); const startIndex = (workingsListPage - 1) * workingsListPageSize; const { data } = usePaginatedQuery({ query, input: { filter: { terms: workingSearchValue, offset: startIndex, size: workingsListPageSize } } }); return ( <> {data != null ? ( <> { setWorkingSearchValue(value); }} /> {data.bookMany.items.length != 0 && ( )} ) : ( <> )} ); } const query = gql` query BooksList($input: BookManyInput!) { bookMany(input: $input) { items { id title description author { id username } updatedAt progressStatus ratingTotal reviewsTotal wordsTotal chaptersTotal } total } } `;