UNPKG

@newrelic/gatsby-theme-newrelic

Version:

[![Community Project header](https://github.com/newrelic/opensource-website/raw/master/src/images/categories/Community_Project.png)](https://opensource.newrelic.com/oss-category/#community-project)

33 lines (28 loc) 910 B
import { useState } from 'react'; import usePersistedState from './usePersistedState'; import createStorage from './createStorage'; const getProvider = () => { if (typeof global !== 'undefined' && global.localStorage) { return global.localStorage; } // eslint-disable-next-line no-undef if (typeof globalThis !== 'undefined' && globalThis.localStorage) { // eslint-disable-next-line no-undef return globalThis.localStorage; } if (typeof window !== 'undefined' && window.localStorage) { return window.localStorage; } if (typeof localStorage !== 'undefined') { return localStorage; } return null; }; const createPersistedState = (key, provider = getProvider()) => { if (provider) { const storage = createStorage(provider); return (initialState) => usePersistedState(initialState, key, storage); } return useState; }; export default createPersistedState;