diff --git a/ui/util/lazyImport.js b/ui/util/lazyImport.js index d5f05f60a..da3e64b04 100644 --- a/ui/util/lazyImport.js +++ b/ui/util/lazyImport.js @@ -1,19 +1,30 @@ import React from 'react'; +let localStorageAvailable; +try { + localStorageAvailable = Boolean(window.localStorage); +} catch (e) { + localStorageAvailable = false; +} + export const lazyImport = (componentImport) => React.lazy(async () => { - const pageHasAlreadyBeenForceRefreshed = JSON.parse( - window.localStorage.getItem('page-has-been-force-refreshed') || 'false' - ); + const pageHasAlreadyBeenForceRefreshed = localStorageAvailable + ? JSON.parse(window.localStorage.getItem('page-has-been-force-refreshed') || 'false') + : false; try { const component = await componentImport(); - window.localStorage.setItem('page-has-been-force-refreshed', 'false'); + if (localStorageAvailable) { + window.localStorage.setItem('page-has-been-force-refreshed', 'false'); + } return component; } catch (error) { if (!pageHasAlreadyBeenForceRefreshed) { // It's highly likely that the user's session is old. Try reloading once. - window.localStorage.setItem('page-has-been-force-refreshed', 'true'); + if (localStorageAvailable) { + window.localStorage.setItem('page-has-been-force-refreshed', 'true'); + } return window.location.reload(); }