@hitachivantara/uikit-react-core
Version:
Core React components for the NEXT Design System.
56 lines (55 loc) • 1.39 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const reactTable = require("react-table");
const useInstanceHook = (instance) => {
reactTable.ensurePluginOrder(
instance.plugins,
[
"usePagination",
"useHvGlobalFilter",
"useHvFilters",
"useGroupBy",
"useHvSortBy",
"useHvRowExpand"
],
"useHvPagination"
);
const getInstance = reactTable.useGetLatest(instance);
const getHvPaginationProps = reactTable.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";
exports.useHvPagination = useHvPagination;