import React, { Component } from 'react'; import { connect } from 'react-redux'; import { createDeepLinkingPageEvent } from '../../analytics/AnalyticsEvents'; import { sendAnalytics } from '../../analytics/functions'; import { IReduxState } from '../../app/types'; import { IDeeplinkingConfig } from '../../base/config/configType'; /** * The type of the React {@code Component} props of * {@link NoMobileApp}. */ interface IProps { /** * The deeplinking config. */ _deeplinkingCfg: IDeeplinkingConfig; } /** * React component representing no mobile app page. * * @class NoMobileApp */ class NoMobileApp extends Component { /** * Implements the Component's componentDidMount method. * * @inheritdoc */ componentDidMount() { sendAnalytics( createDeepLinkingPageEvent( 'displayed', 'noMobileApp', { isMobileBrowser: true })); } /** * Renders the component. * * @returns {ReactElement} */ render() { const ns = 'no-mobile-app'; const { desktop } = this.props._deeplinkingCfg; const { appName } = desktop ?? {}; return (

Video chat isn't available on mobile.

Please use { appName } on desktop to join calls.

); } } /** * Maps (parts of) the Redux state to the associated props for the * {@code NoMobileApp} component. * * @param {Object} state - The Redux state. * @private * @returns {IProps} */ function _mapStateToProps(state: IReduxState) { return { _deeplinkingCfg: state['features/base/config'].deeplinking || {} }; } export default connect(_mapStateToProps)(NoMobileApp);