MCPcopy Create free account
hub / github.com/streamich/react-use / useSet

Function useSet

src/useSet.ts:15–38  ·  view source on GitHub ↗
(initialSet = new Set<K>())

Source from the content-addressed store, hash-verified

13}
14
15const useSet = <K>(initialSet = new Set<K>()): [Set<K>, Actions<K>] => {
16 const [set, setSet] = useState(initialSet);
17
18 const stableActions = useMemo<StableActions<K>>(() => {
19 const add = (item: K) => setSet((prevSet) => new Set([...Array.from(prevSet), item]));
20 const remove = (item: K) =>
21 setSet((prevSet) => new Set(Array.from(prevSet).filter((i) => i !== item)));
22 const toggle = (item: K) =>
23 setSet((prevSet) =>
24 prevSet.has(item)
25 ? new Set(Array.from(prevSet).filter((i) => i !== item))
26 : new Set([...Array.from(prevSet), item])
27 );
28
29 return { add, remove, toggle, reset: () => setSet(initialSet), clear: () => setSet(new Set()) };
30 }, [setSet]);
31
32 const utils = {
33 has: useCallback((item) => set.has(item), [set]),
34 ...stableActions,
35 } as Actions<K>;
36
37 return [set, utils];
38};
39
40export default useSet;

Callers 2

DemoFunction · 0.90
setUpFunction · 0.85

Calls

no outgoing calls

Tested by 1

setUpFunction · 0.68

Used in the wild real call sites across dependent graphs

searching dependent graphs…