Files
NapCatQQ/.pnpm-store/v3/files/35/7056c9db8e79b05f021f429599fa7c32f91a2726fd5c71400186ba2cc574ac2d3b70c64262433fbb5195f7faabd11355a7eb26e8725df4770dd4b327772e0f
T
TanTan e311ca3275
Build NapCat Artifacts / Type Check & Test (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

61 lines
1.7 KiB
Plaintext

import { __read } from "tslib";
import { useState } from 'react';
import useMemoizedFn from '../useMemoizedFn';
import { isNumber } from '../utils';
function getTargetValue(val, options) {
if (options === void 0) { options = {}; }
var min = options.min, max = options.max;
var target = val;
if (isNumber(max)) {
target = Math.min(max, target);
}
if (isNumber(min)) {
target = Math.max(min, target);
}
return target;
}
function useCounter(initialValue, options) {
if (initialValue === void 0) { initialValue = 0; }
if (options === void 0) { options = {}; }
var min = options.min, max = options.max;
var _a = __read(useState(function () {
return getTargetValue(initialValue, {
min: min,
max: max,
});
}), 2), current = _a[0], setCurrent = _a[1];
var setValue = function (value) {
setCurrent(function (c) {
var target = isNumber(value) ? value : value(c);
return getTargetValue(target, {
max: max,
min: min,
});
});
};
var inc = function (delta) {
if (delta === void 0) { delta = 1; }
setValue(function (c) { return c + delta; });
};
var dec = function (delta) {
if (delta === void 0) { delta = 1; }
setValue(function (c) { return c - delta; });
};
var set = function (value) {
setValue(value);
};
var reset = function () {
setValue(initialValue);
};
return [
current,
{
inc: useMemoizedFn(inc),
dec: useMemoizedFn(dec),
set: useMemoizedFn(set),
reset: useMemoizedFn(reset),
},
];
}
export default useCounter;