mirror of
				https://github.com/vector-im/element-web.git
				synced 2025-11-04 02:02:14 +01:00 
			
		
		
		
	Simply use call states
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
This commit is contained in:
		
							parent
							
								
									6b72c13e34
								
							
						
					
					
						commit
						f96e25d833
					
				@ -21,16 +21,6 @@ import { CallEvent, CallState, MatrixCall } from "matrix-js-sdk/src/webrtc/call"
 | 
			
		||||
import CallHandler from '../../CallHandler';
 | 
			
		||||
import { EventEmitter } from 'events';
 | 
			
		||||
 | 
			
		||||
export enum CallEventGrouperState {
 | 
			
		||||
    Incoming = "incoming",
 | 
			
		||||
    Connecting = "connecting",
 | 
			
		||||
    Connected = "connected",
 | 
			
		||||
    Ringing = "ringing",
 | 
			
		||||
    Missed = "missed",
 | 
			
		||||
    Rejected = "rejected",
 | 
			
		||||
    Ended = "ended",
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export enum CallEventGrouperEvent {
 | 
			
		||||
    StateChanged = "state_changed",
 | 
			
		||||
}
 | 
			
		||||
@ -38,7 +28,7 @@ export enum CallEventGrouperEvent {
 | 
			
		||||
export default class CallEventGrouper extends EventEmitter {
 | 
			
		||||
    invite: MatrixEvent;
 | 
			
		||||
    call: MatrixCall;
 | 
			
		||||
    state: CallEventGrouperState;
 | 
			
		||||
    state: CallState;
 | 
			
		||||
 | 
			
		||||
    public answerCall = () => {
 | 
			
		||||
        this.call?.answer();
 | 
			
		||||
@ -76,9 +66,7 @@ export default class CallEventGrouper extends EventEmitter {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private setCallState = () => {
 | 
			
		||||
        if (this.call?.state === CallState.Ringing) {
 | 
			
		||||
            this.state = CallEventGrouperState.Incoming;
 | 
			
		||||
        }
 | 
			
		||||
        this.state = this.call.state
 | 
			
		||||
        this.emit(CallEventGrouperEvent.StateChanged, this.state);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -19,8 +19,9 @@ import React from 'react';
 | 
			
		||||
import { MatrixEvent } from "matrix-js-sdk/src/models/event";
 | 
			
		||||
import { _t } from '../../../languageHandler';
 | 
			
		||||
import MemberAvatar from '../avatars/MemberAvatar';
 | 
			
		||||
import CallEventGrouper, { CallEventGrouperEvent, CallEventGrouperState } from '../../structures/CallEventGrouper';
 | 
			
		||||
import CallEventGrouper, { CallEventGrouperEvent } from '../../structures/CallEventGrouper';
 | 
			
		||||
import FormButton from '../elements/FormButton';
 | 
			
		||||
import { CallState } from 'matrix-js-sdk/src/webrtc/call';
 | 
			
		||||
 | 
			
		||||
interface IProps {
 | 
			
		||||
    mxEvent: MatrixEvent;
 | 
			
		||||
@ -28,7 +29,7 @@ interface IProps {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
interface IState {
 | 
			
		||||
    callState: CallEventGrouperState;
 | 
			
		||||
    callState: CallState;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export default class CallEvent extends React.Component<IProps, IState> {
 | 
			
		||||
@ -57,7 +58,7 @@ export default class CallEvent extends React.Component<IProps, IState> {
 | 
			
		||||
        const sender = event.sender ? event.sender.name : event.getSender();
 | 
			
		||||
 | 
			
		||||
        let content;
 | 
			
		||||
        if (this.state.callState === CallEventGrouperState.Incoming) {
 | 
			
		||||
        if (this.state.callState === CallState.Ringing) {
 | 
			
		||||
            content = (
 | 
			
		||||
                <div className="mx_CallEvent_content">
 | 
			
		||||
                    <FormButton
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user