UI work on conference calls, translations

This commit is contained in:
or-else
2023-06-10 19:00:52 -07:00
parent 2f85f01a1a
commit 7bad07f717
49 changed files with 183 additions and 23982 deletions
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+9 -2
View File
@@ -1649,10 +1649,10 @@
"obsolete": false
},
"calls_conference": {
"translation": "",
"translation": "Telefonkonferenz",
"defaultMessage": "Conference call",
"description": "Conference call label",
"missing": true,
"missing": false,
"obsolete": false
},
"password_reset_success": {
@@ -1661,5 +1661,12 @@
"description": "Notification message that the password was successfully reset.",
"missing": false,
"obsolete": false
},
"join_conference": {
"translation": "",
"defaultMessage": "+ Join",
"description": "Call to action to join a conference call",
"missing": true,
"obsolete": false
}
}
+7
View File
@@ -1661,5 +1661,12 @@
"description": "Notification message that the password was successfully reset.",
"missing": false,
"obsolete": false
},
"join_conference": {
"translation": "+ Join",
"defaultMessage": "+ Join",
"description": "Call to action to join a conference call",
"missing": false,
"obsolete": false
}
}
+9 -2
View File
@@ -1649,10 +1649,10 @@
"obsolete": false
},
"calls_conference": {
"translation": "",
"translation": "Conferencia",
"defaultMessage": "Conference call",
"description": "Conference call label",
"missing": true,
"missing": false,
"obsolete": false
},
"password_reset_success": {
@@ -1661,5 +1661,12 @@
"description": "Notification message that the password was successfully reset.",
"missing": false,
"obsolete": false
},
"join_conference": {
"translation": "",
"defaultMessage": "+ Join",
"description": "Call to action to join a conference call",
"missing": true,
"obsolete": false
}
}
+4
View File
@@ -374,6 +374,10 @@
"defaultMessage": "Invalid security token",
"description": "Error message when resetting password."
},
"join_conference": {
"defaultMessage": "+ Join",
"description": "Call to action to join a conference call"
},
"label_client": {
"defaultMessage": "Client:",
"description": "Label for a client version"
+9 -2
View File
@@ -1649,10 +1649,10 @@
"obsolete": false
},
"calls_conference": {
"translation": "",
"translation": "Conférence téléphonique",
"defaultMessage": "Conference call",
"description": "Conference call label",
"missing": true,
"missing": false,
"obsolete": false
},
"password_reset_success": {
@@ -1661,5 +1661,12 @@
"description": "Notification message that the password was successfully reset.",
"missing": false,
"obsolete": false
},
"join_conference": {
"translation": "",
"defaultMessage": "+ Join",
"description": "Call to action to join a conference call",
"missing": true,
"obsolete": false
}
}
+9 -2
View File
@@ -1649,10 +1649,10 @@
"obsolete": false
},
"calls_conference": {
"translation": "",
"translation": "전화 회의",
"defaultMessage": "Conference call",
"description": "Conference call label",
"missing": true,
"missing": false,
"obsolete": false
},
"password_reset_success": {
@@ -1661,5 +1661,12 @@
"description": "Notification message that the password was successfully reset.",
"missing": false,
"obsolete": false
},
"join_conference": {
"translation": "",
"defaultMessage": "+ Join",
"description": "Call to action to join a conference call",
"missing": true,
"obsolete": false
}
}
+9 -2
View File
@@ -1649,10 +1649,10 @@
"obsolete": false
},
"calls_conference": {
"translation": "",
"translation": "Apel de conferinta",
"defaultMessage": "Conference call",
"description": "Conference call label",
"missing": true,
"missing": false,
"obsolete": false
},
"password_reset_success": {
@@ -1661,5 +1661,12 @@
"description": "Notification message that the password was successfully reset.",
"missing": false,
"obsolete": false
},
"join_conference": {
"translation": "",
"defaultMessage": "+ Join",
"description": "Call to action to join a conference call",
"missing": true,
"obsolete": false
}
}
+9 -2
View File
@@ -1649,10 +1649,10 @@
"obsolete": false
},
"calls_conference": {
"translation": "",
"translation": "Групповой звонок",
"defaultMessage": "Conference call",
"description": "Conference call label",
"missing": true,
"missing": false,
"obsolete": false
},
"password_reset_success": {
@@ -1661,5 +1661,12 @@
"description": "Notification message that the password was successfully reset.",
"missing": false,
"obsolete": false
},
"join_conference": {
"translation": "",
"defaultMessage": "+ Join",
"description": "Call to action to join a conference call",
"missing": true,
"obsolete": false
}
}
+9 -2
View File
@@ -1649,10 +1649,10 @@
"obsolete": false
},
"calls_conference": {
"translation": "",
"translation": "電話會議",
"defaultMessage": "Conference call",
"description": "Conference call label",
"missing": true,
"missing": false,
"obsolete": false
},
"password_reset_success": {
@@ -1661,5 +1661,12 @@
"description": "Notification message that the password was successfully reset.",
"missing": false,
"obsolete": false
},
"join_conference": {
"translation": "",
"defaultMessage": "+ Join",
"description": "Call to action to join a conference call",
"missing": true,
"obsolete": false
}
}
+9 -2
View File
@@ -1649,10 +1649,10 @@
"obsolete": false
},
"calls_conference": {
"translation": "",
"translation": "电话会议",
"defaultMessage": "Conference call",
"description": "Conference call label",
"missing": true,
"missing": false,
"obsolete": false
},
"password_reset_success": {
@@ -1661,5 +1661,12 @@
"description": "Notification message that the password was successfully reset.",
"missing": false,
"obsolete": false
},
"join_conference": {
"translation": "",
"defaultMessage": "+ Join",
"description": "Call to action to join a conference call",
"missing": true,
"obsolete": false
}
}
+10 -2
View File
@@ -7,7 +7,13 @@ import { secondsToTime } from '../lib/strformat.js';
export default class CallMessage extends React.PureComponent {
render() {
const bigIcon = this.props.vc ? 'video_call' : 'call';
const bigIcon = this.props.vc ?
<div className="composed-material">
<i className="material-icons gray second-small">group</i>
<i className="material-icons gray big outline">call</i>
</div>
:
<div><i className="material-icons big gray">call</i></div>;
const isCallDropped = ['busy', 'declined', 'disconnected', 'missed'].includes(this.props.callState);
const successClass = 'material-icons medium ' + (isCallDropped ? 'red' : 'green');
const callIcon = this.props.incoming ?
@@ -46,7 +52,9 @@ export default class CallMessage extends React.PureComponent {
<div>{title}</div>
<div className="duration"><i className={successClass}>{callIcon}</i> {duration}</div>
{allowJoin ?
<a onClick={this.props.onCallJoin}>Join</a>
<a onClick={this.props.onCallJoin}>
<FormattedMessage id="join_conference" defaultMessage="+ Join" description="Call to action to join a conference call" />
</a>
: null}
</div>
</div>;
+2 -1
View File
@@ -6,7 +6,8 @@ import { secondsToTime } from '../lib/strformat.js';
// Props:
// incoming: true | false.
// success: true | false.
// callState: 'busy' | 'declined' | 'disconnected' | 'missed'.
// duration: <number> (call duration in milliseconds).
export default class CallStatus extends React.PureComponent {
render() {
const isCallDropped = ['busy', 'declined', 'disconnected', 'missed'].includes(this.props.callState);
+1 -1
View File
@@ -29,7 +29,7 @@ export default class InlineVideo extends React.PureComponent {
{React.createElement('img', this.props)}
<div className="play-control">
{this.props.onClick ?
<i className="material-icons white bigger">play_arrow</i>
<i className="material-icons white x-big">play_arrow</i>
:
<img src="img/broken_video.png" style={{filter: 'invert(100%)'}} width="36" height="36" />}
</div>
+1 -2
View File
@@ -1,6 +1,5 @@
// Video conference carousel item.
import React from 'react';
import Track from 'livekit-client';
import LetterTile from './letter-tile.jsx';
@@ -25,7 +24,7 @@ export default class VCCarouselItem extends React.PureComponent {
this.props.micPub.audioTrack.attach(this.state.audioRef);
}
}
handleVideoRefChange(node) {
if (!node) { return; }
this.setState({videoRef: node});
+1 -2
View File
@@ -2,7 +2,6 @@ import React from 'react';
import { Track } from 'livekit-client';
import LetterTile from './letter-tile.jsx';
import VCCarouselItem from './vc-carousel-item.jsx';
import { VC_CAROUSEL_ITEM_GAP } from '../constants.js';
@@ -12,7 +11,7 @@ export default class VCCarousel extends React.Component {
super(props);
this.handlePrevClick = this.handlePrevClick.bind(this);
this.handleNextClick = this.handleNextClick.bind(this);
this.carouselRef = React.createRef();
this.contentRef = React.createRef();
this.prevRef = React.createRef();
+1 -6
View File
@@ -1,16 +1,11 @@
// Video conference or broadcast: local and/or peer viewports and controls.
import React from 'react';
import { FormattedMessage, defineMessages, injectIntl } from 'react-intl';
import { FormattedMessage, injectIntl } from 'react-intl';
import {
connect,
LocalParticipant,
MediaDeviceFailure,
Participant,
ParticipantEvent,
RemoteParticipant,
RemoteTrack,
RemoteTrackPublication,
Room,
RoomEvent,
Track,