// Chat message describing a video or voice call.
import React from 'react';
import { FormattedMessage } from 'react-intl';
import { secondsToTime } from '../lib/strformat.js';
export default class CallMessage extends React.PureComponent {
render() {
const bigIcon = this.props.vc ?
group
call
:
call
;
const isCallDropped = ['busy', 'declined', 'disconnected', 'missed'].includes(this.props.callState);
const successClass = 'material-icons medium ' + (isCallDropped ? 'red' : 'green');
const callIcon = this.props.incoming ?
(isCallDropped ? 'call_missed' : 'call_received') :
(isCallDropped ? 'call_missed_outgoing' : 'call_made');
const title = this.props.vc ?
:
this.props.incoming ?
:
;
let duration;
if (isCallDropped) {
switch (this.props.callState) {
case 'busy':
duration = ;
break;
case 'declined':
duration = ;
break;
case 'missed':
duration = this.props.incoming ?
:
;
break;
default:
duration = ;
break;
}
} else {
duration = {secondsToTime(this.props.duration / 1000)};
}
const allowJoin = this.props.vc && this.props.callState == 'started';
return
{bigIcon}
{title}
{callIcon} {duration}
{allowJoin ?
: null}
;
}
}