UNPKG

@alicloud/console-base-rc-pagination

Version:
37 lines 1.02 kB
import { useCallback } from 'react'; import useModelProps from './_use-model-props'; import usePage from './use-page'; import usePages from './use-pages'; import useDispatchSetPage from './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; } export default function useHandlePage() { var _useModelProps = useModelProps(), onChange = _useModelProps.onChange; var page = usePage(); var pages = usePages(); var dispatchSetPage = useDispatchSetPage(); return 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]); }