UNPKG

@mantine/hooks

Version:

A collection of 50+ hooks for state and UI management

29 lines (28 loc) 1.02 kB
"use client"; const require_clamp = require("../utils/clamp/clamp.cjs"); let react = require("react"); //#region packages/@mantine/hooks/src/use-counter/use-counter.ts const DEFAULT_OPTIONS = { min: -Infinity, max: Infinity }; function useCounter(initialValue = 0, options) { const { min, max } = { ...DEFAULT_OPTIONS, ...options }; const [count, setCount] = (0, react.useState)(require_clamp.clamp(initialValue, min, max)); return [count, { increment: (0, react.useCallback)(() => setCount((current) => require_clamp.clamp(current + 1, min, max)), [min, max]), decrement: (0, react.useCallback)(() => setCount((current) => require_clamp.clamp(current - 1, min, max)), [min, max]), set: (0, react.useCallback)((value) => setCount(require_clamp.clamp(value, min, max)), [min, max]), reset: (0, react.useCallback)(() => setCount(require_clamp.clamp(initialValue, min, max)), [ initialValue, min, max ]) }]; } //#endregion exports.useCounter = useCounter; //# sourceMappingURL=use-counter.cjs.map