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

actions.js 1.8KB

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