UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

56 lines (55 loc) 1.29 kB
import { ensurePluginOrder, useGetLatest, makePropGetter } from "react-table"; const useInstanceHook = (instance) => { ensurePluginOrder( instance.plugins, [ "usePagination", "useHvGlobalFilter", "useHvFilters", "useGroupBy", "useHvSortBy", "useHvRowExpand" ], "useHvPagination" ); const getInstance = useGetLatest(instance); const getHvPaginationProps = makePropGetter( instance.getHooks().getHvPaginationProps, { instance: getInstance() } ); Object.assign(instance, { getHvPaginationProps }); }; const defaultGetHvPaginationProps = (props, { instance }) => { const { canPreviousPage, canNextPage, pageOptions, gotoPage, setPageSize, state: { pageSize, pageIndex }, labels } = instance; const nextProps = { canPrevious: canPreviousPage, canNext: canNextPage, pages: pageOptions.length, page: pageIndex, pageSize, onPageChange: gotoPage, onPageSizeChange: setPageSize, labels }; return [props, nextProps]; }; const useHvPagination = (hooks) => { hooks.getHvPaginationProps = [defaultGetHvPaginationProps]; hooks.useInstance.push(useInstanceHook); }; useHvPagination.pluginName = "useHvPagination"; export { useHvPagination };