UNPKG

passbolt-styleguide

Version:

Passbolt styleguide contains common styling assets used by the different sites, plugin, etc.

102 lines (96 loc) 3.3 kB
/** * Passbolt ~ Open source password manager for teams * Copyright (c) 2020 Passbolt SA (https://www.passbolt.com) * * Licensed under GNU Affero General Public License version 3 of the or any later version. * For full copyright and license information, please see the LICENSE.txt * Redistributions of files must retain the above copyright notice. * * @copyright Copyright (c) 2020 Passbolt SA (https://www.passbolt.com) * @license https://opensource.org/licenses/AGPL-3.0 AGPL License * @link https://www.passbolt.com Passbolt(tm) * @since 3.0.0 */ import React, {Component} from "react"; import PropTypes from "prop-types"; import {withAppContext} from "../../../contexts/AppContext"; import {Trans, withTranslation} from "react-i18next"; class DisplayBrowserNotSupported extends Component { constructor(props) { super(props); this.state = this.getDefaultState(); } /** * Returns the default component state */ getDefaultState() { return { //we should always have a browser selected in the list, so by default the first one in the list is selected selectedBrowser: this.compatibleBrowserList[0] }; } handleBrowserButtonClick(browserInfo) { this.setState({ selectedBrowser: browserInfo }); } /** * Returns the list of compatible browsers and their associated information. * @returns {Array<object>} */ get compatibleBrowserList() { return [ { name: "Mozilla Firefox", img: "firefox.svg", url: "https://www.mozilla.org/" }, { name: "Google Chrome", img: "chrome.svg", url: "https://www.google.com/chrome/" }, { name: "Microsoft Edge", img: "edge.svg", url: "https://www.microsoft.com/edge" }, { name: "Brave", img: "brave.svg", url: "https://www.brave.com/" }, { name: "Vivaldi", img: "vivaldi.svg", url: "https://www.vivaldi.com/" }, ]; } /** * Render the component * @returns {JSX} */ render() { return ( <div className="browser-not-supported"> <h1><Trans>Sorry, your browser is not supported.</Trans></h1> <p><Trans>Please download one of these browsers to get started with passbolt:</Trans></p> <div className="browser-button-list"> {this.compatibleBrowserList.map((browserInfo, key) => <button key={key} className={`browser${browserInfo.name === this.state.selectedBrowser.name ? ' focused' : ''}`} target="_blank" onClick={() => this.handleBrowserButtonClick(browserInfo)}> <img src={`${this.props.context.trustedDomain}/img/third_party/${browserInfo.img}`} /> </button> )} </div> <div className="form-actions"> <a href={this.state.selectedBrowser.url} rel="noopener noreferrer" className="button primary big full-width" role="button" target="_blank"><Trans>Download {{browserName: this.state.selectedBrowser.name}}</Trans></a> </div> </div> ); } } DisplayBrowserNotSupported.propTypes = { context: PropTypes.any, // The application context }; export default withAppContext(withTranslation("common")(DisplayBrowserNotSupported));