12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- import { translateToHTML } from '../base/i18n';
- import { isSuboptimalBrowser } from '../base/environment';
- import { toState } from '../base/redux';
-
- 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.suboptimalBrowserWarning',
- {
- recommendedBrowserPageLink: `${window.location.origin}/static/recommendedBrowsers.html`
- }
- )
- }
- )
- );
- }
- }
-
- /**
- * 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;
- }
|