jiti-meet/react/features/base/jitsi-local-storage/setup.web.js

47 lines
1.2 KiB
JavaScript
Raw Normal View History

2020-09-25 22:51:54 +00:00
// @flow
import { jitsiLocalStorage } from '@jitsi/js-utils/jitsi-local-storage';
import { browser } from '../lib-jitsi-meet';
2020-09-25 22:51:54 +00:00
import { parseURLParams } from '../util/parseURLParams';
import logger from './logger';
declare var APP: Object;
/**
* Handles changes of the fake local storage.
*
* @returns {void}
*/
function onFakeLocalStorageChanged() {
APP.API.notifyLocalStorageChanged(jitsiLocalStorage.serialize());
}
/**
* Performs initial setup of the jitsiLocalStorage.
*
* @returns {void}
*/
function setupJitsiLocalStorage() {
if (jitsiLocalStorage.isLocalStorageDisabled() || browser.isWebKitBased()) {
2020-09-25 22:51:54 +00:00
const urlParams = parseURLParams(window.location);
try {
const localStorageContent = JSON.parse(urlParams['appData.localStorageContent']);
if (typeof localStorageContent === 'object') {
Object.keys(localStorageContent).forEach(key => {
jitsiLocalStorage.setItem(key, localStorageContent[key]);
});
}
} catch (error) {
logger.error('Can\'t parse localStorageContent.', error);
}
jitsiLocalStorage.on('changed', onFakeLocalStorageChanged);
}
}
setupJitsiLocalStorage();