You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

BlankPage.native.js 2.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. /* @flow */
  2. import PropTypes from 'prop-types';
  3. import React, { Component } from 'react';
  4. import { connect } from 'react-redux';
  5. import { destroyLocalTracks } from '../../base/tracks';
  6. import { NetworkActivityIndicator } from '../../mobile/network-activity';
  7. import { isWelcomePageAppEnabled } from '../functions';
  8. import LocalVideoTrackUnderlay from './LocalVideoTrackUnderlay';
  9. import styles from './styles';
  10. /**
  11. * The React {@code Component} displayed by {@code AbstractApp} when it has no
  12. * {@code Route} to render. Renders a progress indicator when there are ongoing
  13. * network requests.
  14. */
  15. class BlankPage extends Component<*> {
  16. /**
  17. * {@code BlankPage} React {@code Component}'s prop types.
  18. *
  19. * @static
  20. */
  21. static propTypes = {
  22. /**
  23. * The indicator which determines whether {@code WelcomePage} is (to
  24. * be) rendered.
  25. *
  26. * @private
  27. */
  28. _welcomePageEnabled: PropTypes.bool,
  29. dispatch: PropTypes.func
  30. };
  31. /**
  32. * Destroys the local tracks (if any) since no media is desired when this
  33. * component is rendered.
  34. *
  35. * @inheritdoc
  36. * @returns {void}
  37. */
  38. componentWillMount() {
  39. this.props._welcomePageEnabled
  40. || this.props.dispatch(destroyLocalTracks());
  41. }
  42. /**
  43. * Implements React's {@link Component#render()}.
  44. *
  45. * @inheritdoc
  46. * @returns {ReactElement}
  47. */
  48. render() {
  49. return (
  50. <LocalVideoTrackUnderlay style = { styles.blankPage }>
  51. <NetworkActivityIndicator />
  52. </LocalVideoTrackUnderlay>
  53. );
  54. }
  55. }
  56. /**
  57. * Maps (parts of) the redux state to the React {@code Component} props of
  58. * {@code BlankPage}.
  59. *
  60. * @param {Object} state - The redux state.
  61. * @private
  62. * @returns {{
  63. * _welcomePageEnabled: boolean
  64. * }}
  65. */
  66. function _mapStateToProps(state) {
  67. return {
  68. _welcomePageEnabled: isWelcomePageAppEnabled(state)
  69. };
  70. }
  71. export default connect(_mapStateToProps)(BlankPage);