123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- /* @flow */
-
- import PropTypes from 'prop-types';
- import React, { Component } from 'react';
-
- import { translate } from '../../base/i18n';
- import { HideNotificationBarStyle, Platform } from '../../base/react';
-
- import { CHROME, FIREFOX, IE, SAFARI } from './browserLinks';
-
- /**
- * The namespace of the CSS styles of UnsupportedDesktopBrowser.
- *
- * @private
- * @type {string}
- */
- const _SNS = 'unsupported-desktop-browser';
-
- /**
- * React component representing unsupported browser page.
- *
- * @class UnsupportedDesktopBrowser
- */
- class UnsupportedDesktopBrowser extends Component<*> {
- /**
- * UnsupportedDesktopBrowser component's property types.
- *
- * @static
- */
- static propTypes = {
- /**
- * The function to translate human-readable text.
- *
- * @public
- * @type {Function}
- */
- t: PropTypes.func
- };
-
- /**
- * Renders the component.
- *
- * @returns {ReactElement}
- */
- render() {
- return (
- <div className = { _SNS }>
- <h2 className = { `${_SNS}__title` }>
- It looks like you're using a browser we don't support.
- </h2>
- <p className = { `${_SNS}__description` }>
- Please try again with the latest version of
- <a
- className = { `${_SNS}__link` }
- href = { CHROME } >Chrome</a>,
- <a
- className = { `${_SNS}__link` }
- href = { FIREFOX }>Firefox</a> or
- {
- this._renderOSSpecificBrowserDownloadLink()
- }
- </p>
-
- <HideNotificationBarStyle />
- </div>
- );
- }
-
- /**
- * Depending on the platform returns the link to Safari browser.
- *
- * @returns {ReactElement|null}
- * @private
- */
- _renderOSSpecificBrowserDownloadLink() {
- let link;
- let text;
-
- switch (Platform.OS) {
- case 'macos':
- link = SAFARI;
- text = 'Safari';
- break;
-
- case 'windows':
- link = IE;
- text = 'Internet Explorer';
- break;
- }
- if (typeof link !== 'undefined') {
- return (
- <a
- className = { `${_SNS}__link` }
- href = { link }>
- {
- text
- }
- </a>
- );
- }
-
- return null;
- }
- }
-
- export default translate(UnsupportedDesktopBrowser);
|