Project Init

This commit is contained in:
Muluhabt
2026-05-29 15:23:46 +03:00
commit 2fbc557aac
67387 changed files with 6063341 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
'use client';
import { useState, useCallback } from 'react';
import { clamp } from '../utils/clamp/clamp.mjs';
const DEFAULT_OPTIONS = {
min: -Infinity,
max: Infinity
};
function useCounter(initialValue = 0, options) {
const { min, max } = { ...DEFAULT_OPTIONS, ...options };
const [count, setCount] = useState(clamp(initialValue, min, max));
const increment = useCallback(
() => setCount((current) => clamp(current + 1, min, max)),
[min, max]
);
const decrement = useCallback(
() => setCount((current) => clamp(current - 1, min, max)),
[min, max]
);
const set = useCallback((value) => setCount(clamp(value, min, max)), [min, max]);
const reset = useCallback(
() => setCount(clamp(initialValue, min, max)),
[initialValue, min, max]
);
return [count, { increment, decrement, set, reset }];
}
export { useCounter };
//# sourceMappingURL=use-counter.mjs.map