From 1976cfb6176c5a9bd7165edc8a0d2cbdf7aeb823 Mon Sep 17 00:00:00 2001 From: seb Date: Sun, 11 Oct 2026 17:27:36 +0200 Subject: [PATCH] u --- src/FillSpace.jsx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/FillSpace.jsx b/src/FillSpace.jsx index 41acd13..7c602ad 100644 --- a/src/FillSpace.jsx +++ b/src/FillSpace.jsx @@ -14,6 +14,7 @@ import { alpha } from '@mui/material/styles'; * * @prop {Array} items - Wheel flips pages. * @prop {React.ComponentType|Function} renderItem - Row renderer (component or callback). + * @prop {React.ReactNode} [header] - Rendered below pagination controls and above the list items. * @prop {number} [minPageSize=10] - Rows per page. * @prop {number} [maxPageSize] - Maximum rows per page. * @prop {number} [totalCount] - Total items in unfiltered dataset. When unfiltered count <= pageSize, pagination header is removed entirely. When filtering, the header height is preserved to prevent layout shift. @@ -104,7 +105,8 @@ class FillSpace extends Component { prevProps.belowRef !== this.props.belowRef || prevProps.containerRef !== this.props.containerRef || prevProps.reserveBottom !== this.props.reserveBottom || - prevProps.items !== this.props.items + prevProps.items !== this.props.items || + prevProps.header !== this.props.header ) { this._observe(); this._viewportMeasure(); @@ -126,7 +128,11 @@ class FillSpace extends Component { ); if (this.state.currentPage > pageCount) { this.setState({ currentPage: pageCount }); - this.props.onPageChange?.(pageCount); + this.props.onPageChange?.(pageCount, { + pageCount, + pageSize: this.state.pageSize, + total: this.props.items.length, + }); } } } @@ -267,7 +273,7 @@ class FillSpace extends Component { const next = Math.min(Math.max(1, Number(page) || 1), pageCount); if (next === this.state.currentPage) return; this.setState({ currentPage: next }); - onPageChange?.(next); + onPageChange?.(next, { pageCount, pageSize: this.state.pageSize, total }); }; render() { @@ -289,6 +295,7 @@ class FillSpace extends Component { debug = false, items, renderItem, + header, sx, ...rest } = this.props; @@ -364,6 +371,7 @@ class FillSpace extends Component { ) : null} + {header} { this.ref = el;