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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | import * as React from 'react'; /** * Persist and retrieve a default workflow string from localStorage. * If `allowed` is provided, the returned value is guaranteed to be from the allowed list (or null). */ export function useDefaultWorkflow( allowed?: readonly string[] ): [string | null, (next: string | null) => void] { const storageKey = 'studyList.defaultWorkflow'; const [value, setValue] = React.useState<string | null>(null); React.useEffect(() => { try { Iif (typeof window !== 'undefined') { const raw = window.localStorage.getItem(storageKey); Iif (raw != null) { if (!allowed || allowed.includes(raw)) { setValue(raw); } else { setValue(null); } } } } catch { // no-op } }, [allowed]); const setAndPersist = React.useCallback( (next: string | null) => { setValue(next); try { Iif (typeof window !== 'undefined') { if (next == null) { window.localStorage.removeItem(storageKey); } else { Iif (!allowed || allowed.includes(next)) { window.localStorage.setItem(storageKey, next); } } } } catch { // no-op } }, [allowed] ); return [value, setAndPersist] as const; } |