| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | import PropTypes from 'prop-types';
import { Component } from 'react';
/**
 * Implements a React Component for overlay with guidance how to proceed with
 * gUM prompt.
 */
export default class AbstractUserMediaPermissionsOverlay extends Component {
    /**
     * UserMediaPermissionsOverlay component's property types.
     *
     * @static
     */
    static propTypes = {
        /**
         * The browser which is used currently. The text is different for every
         * browser.
         *
         * @public
         * @type {string}
         */
        browser: PropTypes.string,
        /**
         * The function to translate human-readable text.
         *
         * @public
         * @type {Function}
         */
        t: PropTypes.func
    };
    /**
     * Check if this overlay needs to be rendered. This function will be called
     * by the {@code OverlayContainer}.
     *
     * @param {Object} state - The redux state.
     * @returns {boolean} - True if this overlay needs to be rendered, false
     * otherwise.
     */
    static needsRender(state) {
        return state['features/overlay'].isMediaPermissionPromptVisible;
    }
    /**
     * Implements React's {@link Component#render()}.
     *
     * @inheritdoc
     * @returns {ReactElement|null}
     */
    render() {
        return null;
    }
}
/**
 * Maps (parts of) the redux state to the associated component's props.
 *
 * @param {Object} state - The redux state.
 * @returns {{
 *      browser: string
 * }}
 * @protected
 */
export function abstractMapStateToProps(state) {
    const { browser } = state['features/overlay'];
    return {
        browser
    };
}
 |