UNPKG

matrix-react-sdk

Version:
39 lines (35 loc) 4.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useLocalStorageState = void 0; var _react = require("react"); /* Copyright 2024 New Vector Ltd. Copyright 2020 The Matrix.org Foundation C.I.C. SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ const getValue = (key, initialValue) => { try { const item = window.localStorage.getItem(key); return item ? JSON.parse(item) : initialValue; } catch (error) { return initialValue; } }; // Hook behaving like useState but persisting the value to localStorage. Returns same as useState const useLocalStorageState = (key, initialValue) => { const lsKey = "mx_" + key; const [value, setValue] = (0, _react.useState)(getValue(lsKey, initialValue)); (0, _react.useEffect)(() => { setValue(getValue(lsKey, initialValue)); }, [lsKey, initialValue]); const _setValue = (0, _react.useCallback)(v => { window.localStorage.setItem(lsKey, JSON.stringify(v)); setValue(v); }, [lsKey]); return [value, _setValue]; }; exports.useLocalStorageState = useLocalStorageState; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiZ2V0VmFsdWUiLCJrZXkiLCJpbml0aWFsVmFsdWUiLCJpdGVtIiwid2luZG93IiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsIkpTT04iLCJwYXJzZSIsImVycm9yIiwidXNlTG9jYWxTdG9yYWdlU3RhdGUiLCJsc0tleSIsInZhbHVlIiwic2V0VmFsdWUiLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsIl9zZXRWYWx1ZSIsInVzZUNhbGxiYWNrIiwidiIsInNldEl0ZW0iLCJzdHJpbmdpZnkiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZUxvY2FsU3RvcmFnZVN0YXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCB7IERpc3BhdGNoLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuXG5jb25zdCBnZXRWYWx1ZSA9IDxUPihrZXk6IHN0cmluZywgaW5pdGlhbFZhbHVlOiBUKTogVCA9PiB7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgaXRlbSA9IHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuICAgICAgICByZXR1cm4gaXRlbSA/IEpTT04ucGFyc2UoaXRlbSkgOiBpbml0aWFsVmFsdWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIGluaXRpYWxWYWx1ZTtcbiAgICB9XG59O1xuXG4vLyBIb29rIGJlaGF2aW5nIGxpa2UgdXNlU3RhdGUgYnV0IHBlcnNpc3RpbmcgdGhlIHZhbHVlIHRvIGxvY2FsU3RvcmFnZS4gUmV0dXJucyBzYW1lIGFzIHVzZVN0YXRlXG5leHBvcnQgY29uc3QgdXNlTG9jYWxTdG9yYWdlU3RhdGUgPSA8VD4oa2V5OiBzdHJpbmcsIGluaXRpYWxWYWx1ZTogVCk6IFtULCBEaXNwYXRjaDxUPl0gPT4ge1xuICAgIGNvbnN0IGxzS2V5ID0gXCJteF9cIiArIGtleTtcblxuICAgIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGU8VD4oZ2V0VmFsdWUobHNLZXksIGluaXRpYWxWYWx1ZSkpO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgc2V0VmFsdWUoZ2V0VmFsdWUobHNLZXksIGluaXRpYWxWYWx1ZSkpO1xuICAgIH0sIFtsc0tleSwgaW5pdGlhbFZhbHVlXSk7XG5cbiAgICBjb25zdCBfc2V0VmFsdWU6IERpc3BhdGNoPFQ+ID0gdXNlQ2FsbGJhY2soXG4gICAgICAgICh2OiBUKSA9PiB7XG4gICAgICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0obHNLZXksIEpTT04uc3RyaW5naWZ5KHYpKTtcbiAgICAgICAgICAgIHNldFZhbHVlKHYpO1xuICAgICAgICB9LFxuICAgICAgICBbbHNLZXldLFxuICAgICk7XG5cbiAgICByZXR1cm4gW3ZhbHVlLCBfc2V0VmFsdWVdO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBUUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBUkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBSUEsTUFBTUMsUUFBUSxHQUFHQSxDQUFJQyxHQUFXLEVBQUVDLFlBQWUsS0FBUTtFQUNyRCxJQUFJO0lBQ0EsTUFBTUMsSUFBSSxHQUFHQyxNQUFNLENBQUNDLFlBQVksQ0FBQ0MsT0FBTyxDQUFDTCxHQUFHLENBQUM7SUFDN0MsT0FBT0UsSUFBSSxHQUFHSSxJQUFJLENBQUNDLEtBQUssQ0FBQ0wsSUFBSSxDQUFDLEdBQUdELFlBQVk7RUFDakQsQ0FBQyxDQUFDLE9BQU9PLEtBQUssRUFBRTtJQUNaLE9BQU9QLFlBQVk7RUFDdkI7QUFDSixDQUFDOztBQUVEO0FBQ08sTUFBTVEsb0JBQW9CLEdBQUdBLENBQUlULEdBQVcsRUFBRUMsWUFBZSxLQUF1QjtFQUN2RixNQUFNUyxLQUFLLEdBQUcsS0FBSyxHQUFHVixHQUFHO0VBRXpCLE1BQU0sQ0FBQ1csS0FBSyxFQUFFQyxRQUFRLENBQUMsR0FBRyxJQUFBQyxlQUFRLEVBQUlkLFFBQVEsQ0FBQ1csS0FBSyxFQUFFVCxZQUFZLENBQUMsQ0FBQztFQUVwRSxJQUFBYSxnQkFBUyxFQUFDLE1BQU07SUFDWkYsUUFBUSxDQUFDYixRQUFRLENBQUNXLEtBQUssRUFBRVQsWUFBWSxDQUFDLENBQUM7RUFDM0MsQ0FBQyxFQUFFLENBQUNTLEtBQUssRUFBRVQsWUFBWSxDQUFDLENBQUM7RUFFekIsTUFBTWMsU0FBc0IsR0FBRyxJQUFBQyxrQkFBVyxFQUNyQ0MsQ0FBSSxJQUFLO0lBQ05kLE1BQU0sQ0FBQ0MsWUFBWSxDQUFDYyxPQUFPLENBQUNSLEtBQUssRUFBRUosSUFBSSxDQUFDYSxTQUFTLENBQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ3JETCxRQUFRLENBQUNLLENBQUMsQ0FBQztFQUNmLENBQUMsRUFDRCxDQUFDUCxLQUFLLENBQ1YsQ0FBQztFQUVELE9BQU8sQ0FBQ0MsS0FBSyxFQUFFSSxTQUFTLENBQUM7QUFDN0IsQ0FBQztBQUFDSyxPQUFBLENBQUFYLG9CQUFBLEdBQUFBLG9CQUFBIiwiaWdub3JlTGlzdCI6W119