From 3b0787be8b069a606032512748f1582948998ab5 Mon Sep 17 00:00:00 2001 From: Riad Benguella Date: Tue, 14 May 2024 13:18:05 +0100 Subject: [PATCH] DataViews: Expand typing more components --- .../src/{pagination.js => pagination.tsx} | 35 +++++++++++++++---- ...ckbox.js => single-selection-checkbox.tsx} | 17 ++++++++- packages/dataviews/src/view-list.tsx | 2 +- 3 files changed, 45 insertions(+), 9 deletions(-) rename packages/dataviews/src/{pagination.js => pagination.tsx} (75%) rename packages/dataviews/src/{single-selection-checkbox.js => single-selection-checkbox.tsx} (81%) diff --git a/packages/dataviews/src/pagination.js b/packages/dataviews/src/pagination.tsx similarity index 75% rename from packages/dataviews/src/pagination.js rename to packages/dataviews/src/pagination.tsx index a1e3c644cb5ba3..da37eb99313799 100644 --- a/packages/dataviews/src/pagination.js +++ b/packages/dataviews/src/pagination.tsx @@ -10,14 +10,29 @@ import { createInterpolateElement, memo } from '@wordpress/element'; import { sprintf, __, _x } from '@wordpress/i18n'; import { chevronRight, chevronLeft } from '@wordpress/icons'; +/** + * Internal dependencies + */ +import type { View } from './types'; + +interface PaginationProps { + view: View; + onChangeView: ( view: View ) => void; + paginationInfo: { + totalItems: number; + totalPages: number; + }; +} + const Pagination = memo( function Pagination( { view, onChangeView, paginationInfo: { totalItems = 0, totalPages }, -} ) { +}: PaginationProps ) { if ( ! totalItems || ! totalPages ) { return null; } + const currentPage = view.page ?? 1; return ( !! totalItems && totalPages !== 1 && ( @@ -43,12 +58,15 @@ const Pagination = memo( function Pagination( { CurrentPageControl: ( { const page = i + 1; - return { value: page, label: page }; + return { + value: page.toString(), + label: page.toString(), + }; } ) } onChange={ ( newValue ) => { onChangeView( { @@ -66,9 +84,12 @@ const Pagination = memo( function Pagination( {