MCPcopy Index your code
hub / github.com/aiprodcoder/MIXAPI / useTableCompactMode

Function useTableCompactMode

web/src/hooks/useTableCompactMode.js:10–34  ·  view source on GitHub ↗
(tableKey = 'global')

Source from the content-addressed store, hash-verified

8 * 内部使用 localStorage 保存状态,并监听 storage 事件保持多标签页同步。
9 */
10export function useTableCompactMode(tableKey = 'global') {
11 const [compactMode, setCompactModeState] = useState(() => getTableCompactMode(tableKey));
12
13 const setCompactMode = useCallback((value) => {
14 setCompactModeState(value);
15 setTableCompactMode(value, tableKey);
16 }, [tableKey]);
17
18 useEffect(() => {
19 const handleStorage = (e) => {
20 if (e.key === TABLE_COMPACT_MODES_KEY) {
21 try {
22 const modes = JSON.parse(e.newValue || '{}');
23 setCompactModeState(!!modes[tableKey]);
24 } catch {
25 // ignore parse error
26 }
27 }
28 };
29 window.addEventListener('storage', handleStorage);
30 return () => window.removeEventListener('storage', handleStorage);
31 }, [tableKey]);
32
33 return [compactMode, setCompactMode];
34}

Callers 8

TaskLogsTable.jsFile · 0.90
UsersTable.jsFile · 0.90
MjLogsTable.jsFile · 0.90
ChannelsTable.jsFile · 0.90
TokensTable.jsFile · 0.90

Calls 2

getTableCompactModeFunction · 0.90
setTableCompactModeFunction · 0.90

Tested by

no test coverage detected