UNPKG

baseui

Version:

A React Component library implementing the Base design language

69 lines (68 loc) 2.2 kB
import type { Override } from '../helpers/overrides'; import type { STATE_CHANGE_TYPE } from './constants'; import type { SIZE } from '../input'; export type Labels = { prevButton?: string; nextButton?: string; preposition?: string; }; export type Size = keyof typeof SIZE; export type Callbacks = { /** Callback for prev button click. */ onPrevClick?: (a: { event: any; }) => any; /** Callback for next button click. */ onNextClick?: (a: { event: any; }) => any; /** Callback for when page changes. */ onPageChange?: (a: { nextPage: number; prevPage: number; }) => any; }; export type StateReducerFn = (changeType: keyof typeof STATE_CHANGE_TYPE, changes: StatefulContainerState, currentState: StatefulContainerState) => StatefulContainerState; export type PaginationOverrides = { Root?: Override; PrevButton?: Override; NextButton?: Override; MaxLabel?: Override; DropdownContainer?: Override; Select?: Override; }; export type PaginationProps = Callbacks & { /** Max number of pages. */ numPages: number; /** The current page. */ currentPage: number; /** Set of labels to use for the buttons and preposition. */ labels?: Labels; overrides?: PaginationOverrides; size?: Size; }; export type StatefulPaginationProps = Callbacks & { /** Max number of pages. */ numPages: number; /** Set of labels to use for the buttons and preposition. */ labels?: Labels; /** Reducer function to manipulate internal state updates. */ stateReducer?: StateReducerFn; /** Initial state populated into the component */ initialState?: StatefulContainerState; overrides?: PaginationOverrides; size?: Size; }; export type StatefulContainerProps = { children: any; numPages: number; /** Reducer function to manipulate internal state updates. */ stateReducer?: StateReducerFn; /** Initial state populated into the component */ initialState?: StatefulContainerState; /** Callback for when page changes. */ onPageChange?: Callbacks['onPageChange']; }; export type StatefulContainerState = { currentPage: number; };