| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 | 
							- // @flow
 - 
 - import {
 -     PageReloadFilmstripOnlyOverlay,
 -     PageReloadOverlay,
 -     SuspendedFilmstripOnlyOverlay,
 -     SuspendedOverlay,
 -     UserMediaPermissionsFilmstripOnlyOverlay,
 -     UserMediaPermissionsOverlay
 - } from './components';
 - 
 - declare var interfaceConfig: Object;
 - 
 - /**
 -  * Returns the list of available overlays that might be rendered.
 -  *
 -  * @private
 -  * @returns {Array<?React$ComponentType<*>>}
 -  */
 - function _getOverlays() {
 -     const filmstripOnly
 -         = typeof interfaceConfig === 'object' && interfaceConfig.filmStripOnly;
 -     let overlays;
 - 
 -     if (filmstripOnly) {
 -         overlays = [
 -             PageReloadFilmstripOnlyOverlay,
 -             SuspendedFilmstripOnlyOverlay,
 -             UserMediaPermissionsFilmstripOnlyOverlay
 -         ];
 -     } else {
 -         overlays = [
 -             PageReloadOverlay
 -         ];
 -     }
 - 
 -     // Mobile only has a PageReloadOverlay.
 -     if (navigator.product !== 'ReactNative') {
 -         overlays.push(...[
 -             SuspendedOverlay,
 -             UserMediaPermissionsOverlay
 -         ]);
 -     }
 - 
 -     return overlays;
 - }
 - 
 - /**
 -  * Returns the overlay to be currently rendered.
 -  *
 -  * @param {Object} state - The Redux state.
 -  * @returns {?React$ComponentType<*>}
 -  */
 - export function getOverlayToRender(state: Object) {
 -     for (const overlay of _getOverlays()) {
 -         // react-i18n / react-redux wrap components and thus we cannot access
 -         // the wrapped component's static methods directly.
 -         const component = overlay.WrappedComponent || overlay;
 - 
 -         if (component.needsRender(state)) {
 -             return overlay;
 -         }
 -     }
 - 
 -     return undefined;
 - }
 
 
  |