|
|
|
@ -11,10 +11,14 @@ import { connect, disconnect } from '../../base/connection'; |
|
|
|
|
import { DialogContainer } from '../../base/dialog'; |
|
|
|
|
import { getParticipantCount } from '../../base/participants'; |
|
|
|
|
import { Container, LoadingIndicator, TintedView } from '../../base/react'; |
|
|
|
|
import { |
|
|
|
|
isNarrowAspectRatio, |
|
|
|
|
makeAspectRatioAware |
|
|
|
|
} from '../../base/responsive-ui'; |
|
|
|
|
import { TestConnectionInfo } from '../../base/testing'; |
|
|
|
|
import { createDesiredLocalTracks } from '../../base/tracks'; |
|
|
|
|
import { ConferenceNotification } from '../../calendar-sync'; |
|
|
|
|
import { Filmstrip } from '../../filmstrip'; |
|
|
|
|
import { FILMSTRIP_SIZE, Filmstrip, isFilmstripVisible } from '../../filmstrip'; |
|
|
|
|
import { LargeVideo } from '../../large-video'; |
|
|
|
|
import { CalleeInfoContainer } from '../../invite'; |
|
|
|
|
import { NotificationsContainer } from '../../notifications'; |
|
|
|
@ -37,6 +41,13 @@ type Props = { |
|
|
|
|
*/ |
|
|
|
|
_connecting: boolean, |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Set to {@code true} when the filmstrip is currently visible. |
|
|
|
|
* |
|
|
|
|
* @private |
|
|
|
|
*/ |
|
|
|
|
_filmstripVisible: boolean, |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Current conference's full URL. |
|
|
|
|
* |
|
|
|
@ -272,6 +283,14 @@ class Conference extends Component<Props> { |
|
|
|
|
<View |
|
|
|
|
pointerEvents = 'box-none' |
|
|
|
|
style = { styles.toolboxAndFilmstripContainer }> |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Notifications are rendered on the very top of other |
|
|
|
|
* components like subtitles, toolbox and filmstrip. |
|
|
|
|
*/ |
|
|
|
|
this._renderNotificationsContainer() |
|
|
|
|
} |
|
|
|
|
{/* |
|
|
|
|
* The Toolbox is in a stacking layer bellow the Filmstrip. |
|
|
|
|
*/} |
|
|
|
@ -293,8 +312,6 @@ class Conference extends Component<Props> { |
|
|
|
|
this._renderConferenceNotification() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
<NotificationsContainer /> |
|
|
|
|
|
|
|
|
|
{/* |
|
|
|
|
* The dialogs are in the topmost stacking layers. |
|
|
|
|
*/ |
|
|
|
@ -350,6 +367,35 @@ class Conference extends Component<Props> { |
|
|
|
|
? <ConferenceNotification /> |
|
|
|
|
: undefined); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Renders a container for notifications to be displayed by |
|
|
|
|
* the base/notifications feature. |
|
|
|
|
* |
|
|
|
|
* @returns {React$Element} |
|
|
|
|
* @private |
|
|
|
|
*/ |
|
|
|
|
_renderNotificationsContainer() { |
|
|
|
|
const notificationsStyle = { }; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* In the landscape mode (wide) there's problem with notifications being |
|
|
|
|
* shadowed by the filmstrip rendered on the right. This makes the "x" |
|
|
|
|
* button not clickable. In order to avoid that a margin of |
|
|
|
|
* the filmstrip's size is added to the right. |
|
|
|
|
* |
|
|
|
|
* Pawel: after many attempts I failed to make notifications adjust to |
|
|
|
|
* their contents width because of column and rows being used in |
|
|
|
|
* the flex layout. The only option that seemed to limit |
|
|
|
|
* the notification's size was explicit 'width' value which is not |
|
|
|
|
* better than the margin added here. |
|
|
|
|
*/ |
|
|
|
|
if (!isNarrowAspectRatio(this) && this.props._filmstripVisible) { |
|
|
|
|
notificationsStyle.marginRight = FILMSTRIP_SIZE; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return <NotificationsContainer style = { notificationsStyle } />; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
@ -423,6 +469,7 @@ function _mapDispatchToProps(dispatch) { |
|
|
|
|
* @private |
|
|
|
|
* @returns {{ |
|
|
|
|
* _connecting: boolean, |
|
|
|
|
* _filmstripVisible: boolean, |
|
|
|
|
* _locationURL: URL, |
|
|
|
|
* _participantCount: number, |
|
|
|
|
* _reducedUI: boolean, |
|
|
|
@ -467,6 +514,11 @@ function _mapStateToProps(state) { |
|
|
|
|
*/ |
|
|
|
|
_connecting: Boolean(connecting_), |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Is {@code true} when the filmstrip is currently visible. |
|
|
|
|
*/ |
|
|
|
|
_filmstripVisible: isFilmstripVisible(state), |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Current conference's full URL. |
|
|
|
|
* |
|
|
|
@ -520,4 +572,4 @@ function _mapStateToProps(state) { |
|
|
|
|
|
|
|
|
|
// $FlowFixMe
|
|
|
|
|
export default reactReduxConnect(_mapStateToProps, _mapDispatchToProps)( |
|
|
|
|
Conference); |
|
|
|
|
makeAspectRatioAware(Conference)); |
|
|
|
|