| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 | // @flow
import { jitsiLocalStorage } from '@jitsi/js-utils/jitsi-local-storage';
import { browser } from '../lib-jitsi-meet';
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.isSafari()) {
        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();
 |