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

middleware.ts 1.3KB

1234567891011121314151617181920212223242526272829303132333435
  1. import { CONFERENCE_JOINED, CONFERENCE_JOIN_IN_PROGRESS } from '../base/conference/actionTypes';
  2. import { JitsiConferenceEvents } from '../base/lib-jitsi-meet';
  3. import MiddlewareRegistry from '../base/redux/MiddlewareRegistry';
  4. import { showNotification } from '../notifications/actions';
  5. import { NOTIFICATION_TIMEOUT_TYPE } from '../notifications/constants';
  6. import { updateVisitorsCount } from './actions';
  7. MiddlewareRegistry.register(({ dispatch, getState }) => next => action => {
  8. switch (action.type) {
  9. case CONFERENCE_JOIN_IN_PROGRESS: {
  10. const { conference } = action;
  11. conference.on(JitsiConferenceEvents.PROPERTIES_CHANGED, (properties: { 'visitor-count': number; }) => {
  12. const visitorCount = Number(properties?.['visitor-count']);
  13. if (!isNaN(visitorCount) && getState()['features/visitors'].count !== visitorCount) {
  14. dispatch(updateVisitorsCount(visitorCount));
  15. }
  16. });
  17. break;
  18. }
  19. case CONFERENCE_JOINED: {
  20. if (getState()['features/visitors'].iAmVisitor) {
  21. dispatch(showNotification({
  22. titleKey: 'visitors.notification.title',
  23. descriptionKey: 'visitors.notification.description'
  24. }, NOTIFICATION_TIMEOUT_TYPE.STICKY));
  25. }
  26. break;
  27. }
  28. }
  29. return next(action);
  30. });