feat(screener): useScreenerMode hook (form|canvas + localStorage)
This commit is contained in:
25
src/pages/stock/screener/hooks/useScreenerMode.js
Normal file
25
src/pages/stock/screener/hooks/useScreenerMode.js
Normal file
@@ -0,0 +1,25 @@
|
||||
import { useState } from 'react';
|
||||
|
||||
const STORAGE_KEY = 'screener-mode-v1';
|
||||
const VALID_MODES = new Set(['form', 'canvas']);
|
||||
|
||||
function readMode() {
|
||||
try {
|
||||
const v = localStorage.getItem(STORAGE_KEY);
|
||||
return VALID_MODES.has(v) ? v : 'form';
|
||||
} catch {
|
||||
return 'form';
|
||||
}
|
||||
}
|
||||
|
||||
export function useScreenerMode() {
|
||||
const [mode, setModeState] = useState(readMode);
|
||||
|
||||
const setMode = (m) => {
|
||||
if (!VALID_MODES.has(m)) return;
|
||||
setModeState(m);
|
||||
try { localStorage.setItem(STORAGE_KEY, m); } catch {}
|
||||
};
|
||||
|
||||
return { mode, setMode };
|
||||
}
|
||||
Reference in New Issue
Block a user