Skip to content

Commit 6cebf48

Browse files
author
Roman Snapko
committed
Extract legend toggle logic into reusable useHiddenKeys hook
1 parent 195c191 commit 6cebf48

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { useCallback, useState } from 'react';
2+
3+
export function useHiddenKeys(): {
4+
hiddenKeys: Set<string>;
5+
toggleKey: (key: string) => void;
6+
} {
7+
const [hiddenKeys, setHiddenKeys] = useState<Set<string>>(new Set());
8+
9+
const toggleKey = useCallback((key: string) => {
10+
setHiddenKeys((prev) => {
11+
const next = new Set(prev);
12+
if (next.has(key)) {
13+
next.delete(key);
14+
} else {
15+
next.add(key);
16+
}
17+
return next;
18+
});
19+
}, []);
20+
21+
return { hiddenKeys, toggleKey };
22+
}

0 commit comments

Comments
 (0)