UNPKG

@alicloud/console-base-rc-pagination

Version:
44 lines (43 loc) 1.39 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = useHandlePage; var _react = require("react"); var _useModelProps2 = _interopRequireDefault(require("./_use-model-props")); var _usePage = _interopRequireDefault(require("./use-page")); var _usePages = _interopRequireDefault(require("./use-pages")); var _useDispatchSetPage = _interopRequireDefault(require("./use-dispatch-set-page")); function getPageNew(value, page, pages) { var pageNew; if (value === '+1') { pageNew = page + 1; } else if (value === '-1') { pageNew = page - 1; } else { pageNew = value; } if (pageNew < 1) { return 1; } if (pageNew > pages) { return pages; } return pageNew; } function useHandlePage() { var _useModelProps = (0, _useModelProps2.default)(), onChange = _useModelProps.onChange; var page = (0, _usePage.default)(); var pages = (0, _usePages.default)(); var dispatchSetPage = (0, _useDispatchSetPage.default)(); return (0, _react.useCallback)(function (value) { var pageNew = getPageNew(value, page, pages); if (pageNew === page) { return; } dispatchSetPage(pageNew); onChange === null || onChange === void 0 ? void 0 : onChange(pageNew); }, [page, pages, onChange, dispatchSetPage]); }