Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | 33x 33x 33x 33x 33x 33x 4936x 4936x 16x 4936x | import { useLocalStorage } from "usehooks-ts";
export enum LocalTabStateEnum {
Closed = "CLOSED",
Open = "OPEN",
UnSaved = "UNSAVED",
Locked = "LOCKED",
Root = "ROOT",
}
export function useLocalTabState(flowsheetId: string) {
const LOCAL_KEY = `flowsheetTabStates_${flowsheetId}`;
const [tabMap, setTabMap] = useLocalStorage<
Record<string, LocalTabStateEnum>
>(LOCAL_KEY, {});
function updateTab(id: string, state: LocalTabStateEnum) {
setTabMap((prev) => ({ ...prev, [id]: state }));
}
function hideTab(id: string) {
setTabMap((prev) => ({ ...prev, [id]: LocalTabStateEnum.Closed }));
}
function removeTab(id: string) {
setTabMap((prev) => {
const copy = { ...prev };
delete copy[id];
return copy;
});
}
return { tabMap, updateTab, hideTab, removeTab };
}
|