UNPKG

storybook-addon-designs

Version:

Storybook addon for embedding your design preview in addon panel

44 lines (43 loc) 1.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.usePage = void 0; var react_1 = require("react"); exports.usePage = function (initialPage) { if (initialPage === void 0) { initialPage = 1; } var _a = react_1.useState(1), current = _a[0], setCurrent = _a[1]; var _b = react_1.useState(1), total = _b[0], setTotal = _b[1]; var init = react_1.useCallback(function (total) { setTotal(total); setCurrent(total > 0 ? initialPage : 0); }, [initialPage, setTotal, setCurrent]); var jump = react_1.useCallback(function (page) { setCurrent(page > total ? total : page <= 0 ? 1 : page); }, [total, setCurrent]); react_1.useEffect(function () { jump(initialPage); }, [initialPage]); var isFirst = current <= 1; var isLast = current >= total; var next = react_1.useCallback(function () { if (isLast) { return; } setCurrent(function (page) { return page + 1; }); }, [isLast, setCurrent]); var prev = react_1.useCallback(function () { if (isFirst) { return; } setCurrent(function (page) { return page - 1; }); }, [isFirst, setCurrent]); return { current: current, total: total, isFirst: isFirst, isLast: isLast, next: next, prev: prev, jump: jump, init: init }; };