You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

setup.web.js 1.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // @flow
  2. import { jitsiLocalStorage } from '@jitsi/js-utils/jitsi-local-storage';
  3. import { parseURLParams } from '../util/parseURLParams';
  4. import logger from './logger';
  5. declare var APP: Object;
  6. /**
  7. * Handles changes of the fake local storage.
  8. *
  9. * @returns {void}
  10. */
  11. function onFakeLocalStorageChanged() {
  12. APP.API.notifyLocalStorageChanged(jitsiLocalStorage.serialize());
  13. }
  14. /**
  15. * Performs initial setup of the jitsiLocalStorage.
  16. *
  17. * @returns {void}
  18. */
  19. function setupJitsiLocalStorage() {
  20. if (jitsiLocalStorage.isLocalStorageDisabled()) {
  21. const urlParams = parseURLParams(window.location);
  22. try {
  23. const localStorageContent = JSON.parse(urlParams['appData.localStorageContent']);
  24. if (typeof localStorageContent === 'object') {
  25. Object.keys(localStorageContent).forEach(key => {
  26. jitsiLocalStorage.setItem(key, localStorageContent[key]);
  27. });
  28. }
  29. } catch (error) {
  30. logger.error('Can\'t parse localStorageContent.', error);
  31. }
  32. jitsiLocalStorage.on('changed', onFakeLocalStorageChanged);
  33. }
  34. }
  35. setupJitsiLocalStorage();