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

39 lines
1.1 KiB
Plaintext

import { __read } from "tslib";
import { useState } from 'react';
import useMemoizedFn from '../useMemoizedFn';
function useSet(initialValue) {
var getInitValue = function () { return new Set(initialValue); };
var _a = __read(useState(getInitValue), 2), set = _a[0], setSet = _a[1];
var updateSet = function (updater) {
setSet(function (prevSet) { return updater(new Set(prevSet)); });
};
var add = function (key) {
if (set.has(key)) {
return;
}
updateSet(function (newSet) {
newSet.add(key);
return newSet;
});
};
var remove = function (key) {
if (!set.has(key)) {
return;
}
updateSet(function (newSet) {
newSet.delete(key);
return newSet;
});
};
var reset = function () { return setSet(getInitValue()); };
return [
set,
{
add: useMemoizedFn(add),
remove: useMemoizedFn(remove),
reset: useMemoizedFn(reset),
},
];
}
export default useSet;