UNPKG

@mui/system

Version:

MUI System is a set of CSS utilities to help you build custom designs more efficiently. It makes it possible to rapidly lay out custom designs.

51 lines 1.15 kB
function noop() {} const localStorageManager = ({ key, storageWindow }) => { if (!storageWindow && typeof window !== 'undefined') { storageWindow = window; } return { get(defaultValue) { if (typeof window === 'undefined') { return undefined; } if (!storageWindow) { return defaultValue; } let value; try { value = storageWindow.localStorage.getItem(key); } catch { // Unsupported } return value || defaultValue; }, set: value => { if (storageWindow) { try { storageWindow.localStorage.setItem(key, value); } catch { // Unsupported } } }, subscribe: handler => { if (!storageWindow) { return noop; } const listener = event => { const value = event.newValue; if (event.key === key) { handler(value); } }; storageWindow.addEventListener('storage', listener); return () => { storageWindow.removeEventListener('storage', listener); }; } }; }; export default localStorageManager;