lbry-desktop/ui/util/lazyImport.js
infinite-persistence 04a67c6ca2 Disable "missing-chunks auto reload"
To confirm if this is causing "6636 Slow Embed".  Most likely it is.
2021-07-22 14:10:57 -04:00

35 lines
1.1 KiB
JavaScript

import React from 'react';
let localStorageAvailable;
try {
localStorageAvailable = Boolean(window.localStorage);
} catch (e) {
localStorageAvailable = false;
}
export const lazyImport = (componentImport) =>
React.lazy(async () => {
const pageHasAlreadyBeenForceRefreshed = localStorageAvailable
? JSON.parse(window.localStorage.getItem('page-has-been-force-refreshed') || 'false')
: false;
try {
const component = await componentImport();
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.
if (localStorageAvailable) {
window.localStorage.setItem('page-has-been-force-refreshed', 'true');
}
// -- Disable the auto-reload behavior for now to confirm "#6636 Slow embed" issue
// return window.location.reload();
}
// If it still didn't work, then relay the error.
throw error;
}
});