UNPKG

fullpage-scroll-component

Version:
54 lines (49 loc) 1.3 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var react = require('react'); const useSuccessiveValue = ({ defaultNumber = 0, maximum }) => { const defaultCurrentNumberRef = react.useRef(defaultNumber !== null && defaultNumber !== void 0 ? defaultNumber : 0); const [current, setCurrent] = react.useState(defaultCurrentNumberRef.current); const resetCurrent = react.useCallback(() => { setCurrent(defaultCurrentNumberRef.current); }, []); const next = react.useCallback(() => { if (current >= maximum) { return current; } setCurrent(prev => ++prev); return current + 1; }, [current, maximum]); const prev = react.useCallback(() => { if (current <= 0) { return current; } setCurrent(prev => --prev); return current - 1; }, [current]); const hasNext = react.useMemo(() => { return current < maximum; }, [current, maximum]); const hasPrev = react.useMemo(() => { return current > 0; }, [current]); const move = react.useCallback(to => { if (to >= 0 || to <= maximum) { setCurrent(to); } }, [maximum]); return { current, setCurrent, resetCurrent, next, prev, hasNext, hasPrev, move }; }; exports.useSuccessiveValue = useSuccessiveValue;