From 7a5ef2b86ef2ac2818647587877ea6bd04e81ec1 Mon Sep 17 00:00:00 2001 From: brookewp Date: Tue, 25 Feb 2025 11:14:00 -0800 Subject: [PATCH] Review suggestions Signed-off-by: brookewp --- inc/Validation/ConfigSchemas.php | 5 ++--- .../remote-data-container/components/item-list/ItemList.tsx | 2 +- .../remote-data-container/hooks/usePaginationVariables.ts | 2 +- types/remote-data.d.ts | 2 +- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/inc/Validation/ConfigSchemas.php b/inc/Validation/ConfigSchemas.php index f75898ac..7bd7cf57 100644 --- a/inc/Validation/ConfigSchemas.php +++ b/inc/Validation/ConfigSchemas.php @@ -288,9 +288,8 @@ private static function generate_http_query_config_schema(): array { 'pagination_schema' => Types::nullable( Types::object( [ // This field provides an integer representing the total number of - // items available in paginated results. This field must be defined - // in order present to enable pagination support of any type, - // including cursor-based pagination. + // items available in paginated results. Either this field or + // `has_next_page` must be defined in order to enable 'total_items' => Types::nullable( Types::object( [ 'name' => Types::nullable( Types::string() ), diff --git a/src/blocks/remote-data-container/components/item-list/ItemList.tsx b/src/blocks/remote-data-container/components/item-list/ItemList.tsx index 8c9e45ad..0e6fe7e9 100644 --- a/src/blocks/remote-data-container/components/item-list/ItemList.tsx +++ b/src/blocks/remote-data-container/components/item-list/ItemList.tsx @@ -162,7 +162,7 @@ export function ItemList( props: ItemListProps ) { onChangeView={ onChangeView } paginationInfo={ { totalItems: totalItems ?? data.length, - totalPages: totalPages ?? ( hasNextPage ? page + 1 : page - 1 ), + totalPages: totalPages ?? ( hasNextPage ? page + 1 : page - 1 ) ?? 1, } } search={ supportsSearch } view={ view } diff --git a/src/blocks/remote-data-container/hooks/usePaginationVariables.ts b/src/blocks/remote-data-container/hooks/usePaginationVariables.ts index 7f0a0df2..51beb5bf 100644 --- a/src/blocks/remote-data-container/hooks/usePaginationVariables.ts +++ b/src/blocks/remote-data-container/hooks/usePaginationVariables.ts @@ -36,7 +36,7 @@ export function usePaginationVariables( { initialPerPage, inputVariables, }: UsePaginationVariablesInput ): UsePaginationVariables { - const [ paginationData, setPaginationData ] = useState< RemoteDataPagination >( {} ); + const [ paginationData, setPaginationData ] = useState< RemoteDataPagination >(); const [ page, setPage ] = useState< number >( initialPage ); const [ perPage, setPerPage ] = useState< number | null >( initialPerPage ?? null ); diff --git a/types/remote-data.d.ts b/types/remote-data.d.ts index 07b6ef5f..9aae9e24 100644 --- a/types/remote-data.d.ts +++ b/types/remote-data.d.ts @@ -3,9 +3,9 @@ interface InnerBlockContext { } interface RemoteDataPagination { - hasNextPage?: boolean; cursorNext?: string; cursorPrevious?: string; + hasNextPage?: boolean; totalItems?: number; }