diff --git a/plugins/search-react/api-report.md b/plugins/search-react/api-report.md index 744f45065f..24b70240a0 100644 --- a/plugins/search-react/api-report.md +++ b/plugins/search-react/api-report.md @@ -335,11 +335,19 @@ export type SearchResultLimiterBaseProps = { id?: string; className?: string; label?: ReactNode; - options?: number[]; + options?: SearchResultLimiterOption[]; value?: number; onChange?: (value: number) => void; }; +// @public +export type SearchResultLimiterOption< + Current extends number = 101, + Accumulator extends number[] = [], +> = Accumulator['length'] extends Current + ? Accumulator[number] + : SearchResultLimiterOption; + // @public export type SearchResultLimiterProps = Omit< SearchResultLimiterBaseProps, diff --git a/plugins/search-react/src/components/SearchResultLimiter/SearchResultLimiter.tsx b/plugins/search-react/src/components/SearchResultLimiter/SearchResultLimiter.tsx index 0d4b8381dd..7f2d1ffc58 100644 --- a/plugins/search-react/src/components/SearchResultLimiter/SearchResultLimiter.tsx +++ b/plugins/search-react/src/components/SearchResultLimiter/SearchResultLimiter.tsx @@ -25,6 +25,17 @@ import { } from '@material-ui/core'; import { useSearch } from '../../context'; +/** + * A page limit option, this value must not be greater than 100. + * @public + */ +export type SearchResultLimiterOption< + Current extends number = 101, + Accumulator extends number[] = [], +> = Accumulator['length'] extends Current + ? Accumulator[number] + : SearchResultLimiterOption; + /** * Props for {@link SearchResultLimiterBase}. * @public @@ -39,7 +50,7 @@ export type SearchResultLimiterBaseProps = { /** * The combobox labels, defaults to 10, 25, 50 and 100. */ - options?: number[]; + options?: SearchResultLimiterOption[]; /** * Combobox selected option, defaults to 25; */ @@ -129,18 +140,11 @@ export type SearchResultLimiterProps = Omit< export const SearchResultLimiter = (props: SearchResultLimiterProps) => { const { pageLimit, setPageLimit } = useSearch(); - const handleChange = useCallback( - (newPageLimit: number) => { - setPageLimit(newPageLimit); - }, - [setPageLimit], - ); - return ( ); };