From faa0b350325dab5ec71f64831fdc4b0d73d388b6 Mon Sep 17 00:00:00 2001 From: Joao Siebel <joaos_desenv@imdt.com.br> Date: Tue, 2 Jun 2020 16:47:26 -0300 Subject: [PATCH] Show correct screen when user leave meeting. close #9710 --- bigbluebutton-html5/imports/startup/client/base.jsx | 13 +++++++------ .../ui/components/error-screen/component.jsx | 8 +++++--- .../ui/components/meeting-ended/component.jsx | 8 ++++---- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/bigbluebutton-html5/imports/startup/client/base.jsx b/bigbluebutton-html5/imports/startup/client/base.jsx index 6e339759b0..49230d326a 100755 --- a/bigbluebutton-html5/imports/startup/client/base.jsx +++ b/bigbluebutton-html5/imports/startup/client/base.jsx @@ -7,7 +7,6 @@ import ErrorScreen from '/imports/ui/components/error-screen/component'; import MeetingEnded from '/imports/ui/components/meeting-ended/component'; import LoadingScreen from '/imports/ui/components/loading-screen/component'; import Settings from '/imports/ui/services/settings'; -import AudioManager from '/imports/ui/services/audio-manager'; import logger from '/imports/startup/client/logger'; import Users from '/imports/api/users'; import { Session } from 'meteor/session'; @@ -161,8 +160,8 @@ class Base extends Component { const { updateLoadingState } = this; const stateControls = { updateLoadingState }; const { loading } = this.state; - const codeError = Session.get('codeError'); const { + codeError, ejected, meetingExist, meetingHasEnded, @@ -176,14 +175,12 @@ class Base extends Component { } if (ejected) { - AudioManager.exitAudio(); return (<MeetingEnded code="403" />); } if (meetingHasEnded && meetingIsBreakout) window.close(); if (((meetingHasEnded && !meetingIsBreakout)) || (codeError && (User && User.loggedOut))) { - AudioManager.exitAudio(); return (<MeetingEnded code={codeError} />); } @@ -191,10 +188,11 @@ class Base extends Component { // 680 is set for the codeError when the user requests a logout if (codeError !== '680') { logger.error({ logCode: 'startup_client_usercouldnotlogin_error' }, `User could not log in HTML5, hit ${codeError}`); + return (<ErrorScreen code={codeError} />); } - return (<ErrorScreen code={codeError} />); + return (<MeetingEnded code={codeError} />); } - // this.props.annotationsHandler.stop(); + return (<AppContainer {...this.props} baseControls={stateControls} />); } @@ -364,6 +362,8 @@ const BaseContainer = withTracker(() => { Session.set('openPanel', ''); } + const codeError = Session.get('codeError'); + return { approved, ejected, @@ -379,6 +379,7 @@ const BaseContainer = withTracker(() => { meetingIsBreakout: AppService.meetingIsBreakout(), subscriptionsReady: Session.get('subscriptionsReady'), loggedIn, + codeError, }; })(Base); diff --git a/bigbluebutton-html5/imports/ui/components/error-screen/component.jsx b/bigbluebutton-html5/imports/ui/components/error-screen/component.jsx index bf8ddcee4b..6056a7c942 100644 --- a/bigbluebutton-html5/imports/ui/components/error-screen/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/error-screen/component.jsx @@ -1,10 +1,11 @@ -import React from 'react'; +import React, { PureComponent } from 'react'; import PropTypes from 'prop-types'; import { defineMessages, injectIntl } from 'react-intl'; import { Meteor } from 'meteor/meteor'; +import { Session } from 'meteor/session'; import Button from '/imports/ui/components/button/component'; import logoutRouteHandler from '/imports/utils/logoutRouteHandler'; -import { Session } from 'meteor/session'; +import AudioManager from '/imports/ui/services/audio-manager'; import { styles } from './styles'; const intlMessages = defineMessages({ @@ -45,8 +46,9 @@ const defaultProps = { code: 500, }; -class ErrorScreen extends React.PureComponent { +class ErrorScreen extends PureComponent { componentDidMount() { + AudioManager.exitAudio(); Meteor.disconnect(); } diff --git a/bigbluebutton-html5/imports/ui/components/meeting-ended/component.jsx b/bigbluebutton-html5/imports/ui/components/meeting-ended/component.jsx index 19682614b0..59c5257260 100755 --- a/bigbluebutton-html5/imports/ui/components/meeting-ended/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/meeting-ended/component.jsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { PureComponent } from 'react'; import PropTypes from 'prop-types'; import { defineMessages, injectIntl } from 'react-intl'; import { Meteor } from 'meteor/meteor'; @@ -10,6 +10,7 @@ import Rating from './rating/component'; import { styles } from './styles'; import logger from '/imports/startup/client/logger'; import Users from '/imports/api/users'; +import AudioManager from '/imports/ui/services/audio-manager'; const intlMessage = defineMessages({ 410: { @@ -89,7 +90,7 @@ const propTypes = { code: PropTypes.string.isRequired, }; -class MeetingEnded extends React.PureComponent { +class MeetingEnded extends PureComponent { static getComment() { const textarea = document.getElementById('feedbackComment'); const comment = textarea.value; @@ -110,9 +111,8 @@ class MeetingEnded extends React.PureComponent { this.setSelectedStar = this.setSelectedStar.bind(this); this.sendFeedback = this.sendFeedback.bind(this); this.shouldShowFeedback = getFromUserSettings('bbb_ask_for_feedback_on_logout', Meteor.settings.public.app.askForFeedbackOnLogout); - } - componentDidMount() { + AudioManager.exitAudio(); Meteor.disconnect(); } -- GitLab