To kill componentWillMount, call destroyLocalTrack after mount. Navigation to the blank page was synthetically forced and no UI issues were noticed, possibly because destroyLocalTrack may already be async so destruction may already have been occurring after mount.
52 lines
1.2 KiB
JavaScript
52 lines
1.2 KiB
JavaScript
// @flow
|
|
|
|
import React, { Component } from 'react';
|
|
import { connect } from 'react-redux';
|
|
import type { Dispatch } from 'redux';
|
|
|
|
import { destroyLocalTracks } from '../../base/tracks';
|
|
import { NetworkActivityIndicator } from '../../mobile/network-activity';
|
|
|
|
import LocalVideoTrackUnderlay from './LocalVideoTrackUnderlay';
|
|
|
|
/**
|
|
* The type of React {@code Component} props of {@link BlankPage}.
|
|
*/
|
|
type Props = {
|
|
dispatch: Dispatch<*>
|
|
};
|
|
|
|
/**
|
|
* The React {@code Component} displayed by {@code AbstractApp} when it has no
|
|
* {@code Route} to render. Renders a progress indicator when there are ongoing
|
|
* network requests.
|
|
*/
|
|
class BlankPage extends Component<Props> {
|
|
/**
|
|
* Destroys the local tracks (if any) since no media is desired when this
|
|
* component is rendered.
|
|
*
|
|
* @inheritdoc
|
|
* @returns {void}
|
|
*/
|
|
componentDidMount() {
|
|
this.props.dispatch(destroyLocalTracks());
|
|
}
|
|
|
|
/**
|
|
* Implements React's {@link Component#render()}.
|
|
*
|
|
* @inheritdoc
|
|
* @returns {ReactElement}
|
|
*/
|
|
render() {
|
|
return (
|
|
<LocalVideoTrackUnderlay>
|
|
<NetworkActivityIndicator />
|
|
</LocalVideoTrackUnderlay>
|
|
);
|
|
}
|
|
}
|
|
|
|
export default connect()(BlankPage);
|