You've already forked matrix-react-sdk
mirror of
https://github.com/matrix-org/matrix-react-sdk.git
synced 2025-11-05 23:10:41 +03:00
@@ -33,10 +33,14 @@ const SUPPORTED_STATES = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
export default class CallEventGrouper extends EventEmitter {
|
export default class CallEventGrouper extends EventEmitter {
|
||||||
invite: MatrixEvent;
|
events: Array<MatrixEvent> = [];
|
||||||
call: MatrixCall;
|
call: MatrixCall;
|
||||||
state: CallState;
|
state: CallState;
|
||||||
|
|
||||||
|
private get invite(): MatrixEvent {
|
||||||
|
return this.events.find((event) => event.getType() === EventType.CallInvite);
|
||||||
|
}
|
||||||
|
|
||||||
public answerCall = () => {
|
public answerCall = () => {
|
||||||
this.call?.answer();
|
this.call?.answer();
|
||||||
}
|
}
|
||||||
@@ -80,10 +84,11 @@ export default class CallEventGrouper extends EventEmitter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public add(event: MatrixEvent) {
|
public add(event: MatrixEvent) {
|
||||||
if (event.getType() === EventType.CallInvite) this.invite = event;
|
this.events.push(event);
|
||||||
if (event.getType() === EventType.CallHangup) this.state = CallState.Ended;
|
const type = event.getType();
|
||||||
|
|
||||||
if (this.call) return;
|
if (type === EventType.CallHangup) this.state = CallState.Ended;
|
||||||
|
else if (type === EventType.CallReject) this.state = CallState.Ended;
|
||||||
const callId = event.getContent().call_id;
|
const callId = event.getContent().call_id;
|
||||||
this.call = CallHandler.sharedInstance().getCallById(callId);
|
this.call = CallHandler.sharedInstance().getCallById(callId);
|
||||||
if (!this.call) return;
|
if (!this.call) return;
|
||||||
|
|||||||
Reference in New Issue
Block a user