Merge pull request #6622 from SimonBrandner/release/fix/glare/18538

[Release] Fix glare related regressions
This commit is contained in:
David Baker 2021-08-16 12:40:26 +01:00 committed by GitHub
commit 891e9b58b4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -129,7 +129,7 @@ export default class CallView extends React.Component<IProps, IState> {
constructor(props: IProps) { constructor(props: IProps) {
super(props); super(props);
const { primary, secondary } = this.getOrderedFeeds(this.props.call.getFeeds()); const { primary, secondary } = CallView.getOrderedFeeds(this.props.call.getFeeds());
this.state = { this.state = {
isLocalOnHold: this.props.call.isLocalOnHold(), isLocalOnHold: this.props.call.isLocalOnHold(),
@ -166,7 +166,16 @@ export default class CallView extends React.Component<IProps, IState> {
dis.unregister(this.dispatcherRef); dis.unregister(this.dispatcherRef);
} }
public componentDidUpdate(prevProps) { static getDerivedStateFromProps(props: IProps): Partial<IState> {
const { primary, secondary } = CallView.getOrderedFeeds(props.call.getFeeds());
return {
primaryFeed: primary,
secondaryFeeds: secondary,
};
}
public componentDidUpdate(prevProps: IProps): void {
if (this.props.call === prevProps.call) return; if (this.props.call === prevProps.call) return;
this.setState({ this.setState({
@ -220,7 +229,7 @@ export default class CallView extends React.Component<IProps, IState> {
}; };
private onFeedsChanged = (newFeeds: Array<CallFeed>) => { private onFeedsChanged = (newFeeds: Array<CallFeed>) => {
const { primary, secondary } = this.getOrderedFeeds(newFeeds); const { primary, secondary } = CallView.getOrderedFeeds(newFeeds);
this.setState({ this.setState({
primaryFeed: primary, primaryFeed: primary,
secondaryFeeds: secondary, secondaryFeeds: secondary,
@ -253,7 +262,7 @@ export default class CallView extends React.Component<IProps, IState> {
this.showControls(); this.showControls();
}; };
private getOrderedFeeds(feeds: Array<CallFeed>): { primary: CallFeed, secondary: Array<CallFeed> } { static getOrderedFeeds(feeds: Array<CallFeed>): { primary: CallFeed, secondary: Array<CallFeed> } {
let primary; let primary;
// Try to use a screensharing as primary, a remote one if possible // Try to use a screensharing as primary, a remote one if possible