snapshot of https://github.com/jitsi/jitsi-meet.git @ fd1749dd28f4138aa80234fc7f311b19aaffa0e7 (2026-09-15)
This commit is contained in:
68
react/features/power-monitor/middleware.ts
Normal file
68
react/features/power-monitor/middleware.ts
Normal file
@@ -0,0 +1,68 @@
|
||||
// @ts-expect-error
|
||||
import { PostMessageTransportBackend, Transport } from '../../../modules/transport';
|
||||
import {
|
||||
CONFERENCE_JOINED,
|
||||
CONFERENCE_LEFT
|
||||
} from '../base/conference/actionTypes';
|
||||
import MiddlewareRegistry from '../base/redux/MiddlewareRegistry';
|
||||
import { destroyLocalTracks } from '../base/tracks/actions';
|
||||
|
||||
import { SUSPEND_DETECTED } from './actionTypes';
|
||||
import {
|
||||
setTransport,
|
||||
suspendDetected
|
||||
} from './actions';
|
||||
|
||||
MiddlewareRegistry.register(store => next => action => {
|
||||
const result = next(action);
|
||||
const { dispatch, getState } = store;
|
||||
|
||||
switch (action.type) {
|
||||
case CONFERENCE_JOINED: {
|
||||
|
||||
// listens for messages about suspend from power-monitor
|
||||
const transport = new Transport({
|
||||
backend: new PostMessageTransportBackend({
|
||||
postisOptions: { scope: 'jitsi-power-monitor' }
|
||||
})
|
||||
});
|
||||
|
||||
transport.on('event', (event: { event: string; name: string; }) => {
|
||||
if (event && event.name === 'power-monitor' && event.event === 'suspend') {
|
||||
|
||||
dispatch(suspendDetected());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
dispatch(setTransport(transport));
|
||||
break;
|
||||
}
|
||||
|
||||
case CONFERENCE_LEFT: {
|
||||
const { transport } = getState()['features/power-monitor'];
|
||||
|
||||
if (transport) {
|
||||
transport.dispose();
|
||||
}
|
||||
|
||||
dispatch(setTransport());
|
||||
break;
|
||||
}
|
||||
|
||||
case SUSPEND_DETECTED: {
|
||||
dispatch(destroyLocalTracks());
|
||||
|
||||
// FIXME: when refactoring conference.js
|
||||
APP.conference.onSuspendDetected();
|
||||
|
||||
APP.API.notifySuspendDetected();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
});
|
||||
Reference in New Issue
Block a user