您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

actions.ts 2.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. /* eslint-disable lines-around-comment */
  2. // @ts-ignore
  3. import { jitsiLocalStorage } from '@jitsi/js-utils';
  4. import { IStore } from '../../app/types';
  5. import { isOnline } from '../net-info/selectors';
  6. // @ts-ignore
  7. import JitsiMeetJS from './_';
  8. import {
  9. LIB_DID_DISPOSE,
  10. LIB_DID_INIT,
  11. LIB_INIT_ERROR,
  12. LIB_WILL_DISPOSE,
  13. LIB_WILL_INIT
  14. } from './actionTypes';
  15. import { isAnalyticsEnabled } from './functions.any';
  16. /**
  17. * Disposes (of) lib-jitsi-meet.
  18. *
  19. * @returns {Function}
  20. */
  21. export function disposeLib() {
  22. return (dispatch: IStore['dispatch']) => {
  23. dispatch({ type: LIB_WILL_DISPOSE });
  24. // TODO Currently, lib-jitsi-meet doesn't have the functionality to
  25. // dispose itself.
  26. dispatch({ type: LIB_DID_DISPOSE });
  27. };
  28. }
  29. /**
  30. * Initializes lib-jitsi-meet (i.e. {@link invokes JitsiMeetJS.init()}) with the
  31. * current config(uration).
  32. *
  33. * @returns {Function}
  34. */
  35. export function initLib() {
  36. return (dispatch: IStore['dispatch'], getState: IStore['getState']) => {
  37. const state = getState();
  38. const config = state['features/base/config'];
  39. if (!config) {
  40. throw new Error('Cannot init lib-jitsi-meet without config');
  41. }
  42. dispatch({ type: LIB_WILL_INIT });
  43. try {
  44. JitsiMeetJS.init({
  45. enableAnalyticsLogging: isAnalyticsEnabled(getState),
  46. ...config,
  47. externalStorage: jitsiLocalStorage.isLocalStorageDisabled() ? jitsiLocalStorage : undefined
  48. });
  49. JitsiMeetJS.setNetworkInfo({
  50. isOnline: isOnline(state)
  51. });
  52. dispatch({ type: LIB_DID_INIT });
  53. } catch (error: any) {
  54. dispatch(libInitError(error));
  55. }
  56. };
  57. }
  58. /**
  59. * Notifies about a specific error raised by {@link JitsiMeetJS.init()}.
  60. *
  61. * @param {Error} error - The Error raised by JitsiMeetJS.init().
  62. * @returns {{
  63. * type: LIB_INIT_ERROR,
  64. * error: Error
  65. * }}
  66. */
  67. export function libInitError(error: Error) {
  68. return {
  69. type: LIB_INIT_ERROR,
  70. error
  71. };
  72. }