1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- // @flow
-
- import React, { Component } from 'react';
- import { View } from 'react-native';
-
- import { VideoTrack } from '../../base/media';
- import { TintedView } from '../../base/react';
- import { connect } from '../../base/redux';
- import { getLocalVideoTrack } from '../../base/tracks';
-
- import styles from './styles';
-
- /**
- * The type of the React {@code Component} props of
- * {@link LocalVideoTrackUnderlay}.
- */
- type Props = {
-
- /**
- * The redux representation of the local participant's video track.
- */
- _localVideoTrack: Object,
-
- /**
- * React Elements to display within the component.
- */
- children: React$Node,
-
- /**
- * The style, if any, to apply to {@link LocalVideoTrackUnderlay} in
- * addition to its default style.
- */
- style: Object
- };
-
- /**
- * Implements a React {@code Component} which underlays the local video track,
- * if any, underneath its children.
- */
- class LocalVideoTrackUnderlay extends Component<Props> {
- /**
- * Implements React's {@link Component#render()}.
- *
- * @inheritdoc
- * @override
- * @returns {ReactElement}
- */
- render() {
- return (
- <View
- style = { [
- styles.localVideoTrackUnderlay,
- this.props.style
- ] }>
- <VideoTrack videoTrack = { this.props._localVideoTrack } />
- <TintedView>
- { this.props.children }
- </TintedView>
- </View>
- );
- }
- }
-
- /**
- * Maps (parts of) the redux state to the React {@code Component} props of
- * {@code LocalVideoTrackUnderlay}.
- *
- * @param {Object} state - The redux state.
- * @private
- * @returns {{
- * _localVideoTrack: (Track|undefined)
- * }}
- */
- function _mapStateToProps(state) {
- return {
- _localVideoTrack: getLocalVideoTrack(state['features/base/tracks'])
- };
- }
-
- export default connect(_mapStateToProps)(LocalVideoTrackUnderlay);
|