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();
|