| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | 
							- import { translateToHTML } from '../base/i18n';
 - import { isSuboptimalBrowser } from '../base/environment';
 - import { toState } from '../base/redux';
 - 
 - import { getName } from '../app';
 - import {
 -     areThereNotifications,
 -     showWarningNotification
 - } from '../notifications';
 - import { getOverlayToRender } from '../overlay';
 - 
 - /**
 -  * Shows the suboptimal experience notification if needed.
 -  *
 -  * @param {Function} dispatch - The dispatch method.
 -  * @param {Function} t - The translation function.
 -  * @returns {void}
 -  */
 - export function maybeShowSuboptimalExperienceNotification(dispatch, t) {
 -     if (isSuboptimalBrowser()) {
 -         dispatch(
 -             showWarningNotification(
 -                 {
 -                     titleKey: 'notify.suboptimalExperienceTitle',
 -                     description: translateToHTML(
 -                         t,
 -                         'notify.suboptimalExperienceDescription',
 -                         {
 -                             appName: getName()
 -                         })
 -                 }
 -             )
 -         );
 -     }
 - }
 - 
 - /**
 -  * Tells whether or not the notifications should be displayed within
 -  * the conference feature based on the current Redux state.
 -  *
 -  * @param {Object|Function} stateful - The redux store state.
 -  * @returns {boolean}
 -  */
 - export function shouldDisplayNotifications(stateful) {
 -     const state = toState(stateful);
 -     const isAnyOverlayVisible = Boolean(getOverlayToRender(state));
 -     const { calleeInfoVisible } = state['features/invite'];
 - 
 -     return areThereNotifications(state)
 -             && !isAnyOverlayVisible
 -             && !calleeInfoVisible;
 - }
 
 
  |