UNPKG

passbolt-styleguide

Version:

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

94 lines (88 loc) 3.99 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 LoadingSpinner from "../../Common/Loading/LoadingSpinner/LoadingSpinner"; import { ApiRecoverContextState, withApiRecoverContext } from "../../../contexts/ApiRecoverContext"; import InstallExtension from "../../Authentication/InstallExtension/InstallExtension"; import DisplayBrowserNotSupported from "../../Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported"; import DisplayRequireInvitationError from "../../Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError"; import DisplayExpiredTokenError from "../../Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError"; import DisplayAlreadyLoggedInError, { DisplayAlreadyLoggedInErrorVariations, } from "../../Authentication/DisplayAlreadyLoggedInError/DisplayAlreadyLoggedInError"; import DisplayUnexpectedError from "../../Authentication/DisplayUnexpectedError/DisplayUnexpectedError"; import InstallSafariExtension from "../../Authentication/InstallExtension/InstallSafariExtension"; import ApiConfigureSafariExtension from "../../Authentication/ConfigureExtension/ApiConfigureSafariExtension"; /** * The component orchestrates the api recover authentication workflow. */ class OrchestrateApiRecover extends Component { /** * Whenever the component is initialized */ componentDidMount() { this.initializeRecover(); } /** * Initialize the recover. */ initializeRecover() { setTimeout(() => this.props.apiRecoverContext.onInitializeRecoverRequested(), 1000); } /** * Render the component * @returns {JSX} */ render() { switch (this.props.apiRecoverContext.state) { case ApiRecoverContextState.INSTALL_EXTENSION_STATE: return <InstallExtension />; case ApiRecoverContextState.INSTALL_SAFARI_EXTENSION_STATE: return ( <InstallSafariExtension onExtensionDownloading={this.props.apiRecoverContext.handleSafariExtensionDownloading} onExtensionAlreadyInstalled={this.props.apiRecoverContext.handleExtensionAlreadyInstalled} /> ); case ApiRecoverContextState.CONFIGURE_SAFARI_EXTENSION_STATE: return ( <ApiConfigureSafariExtension onExtensionNotDownloaded={this.props.apiRecoverContext.handleSafariExtensionNotDownloaded} /> ); case ApiRecoverContextState.DOWNLOAD_SUPPORTED_BROWSER_STATE: return <DisplayBrowserNotSupported />; case ApiRecoverContextState.TOKEN_EXPIRED_STATE: return <DisplayExpiredTokenError />; case ApiRecoverContextState.ERROR_ALREADY_SIGNED_IN_STATE: return ( <DisplayAlreadyLoggedInError onLogoutButtonClick={this.props.apiRecoverContext.logoutUserAndRefresh} displayAs={DisplayAlreadyLoggedInErrorVariations.RECOVER} /> ); case ApiRecoverContextState.REQUEST_INVITATION_ERROR: return <DisplayRequireInvitationError />; case ApiRecoverContextState.UNEXPECTED_ERROR_STATE: return <DisplayUnexpectedError error={this.props.apiRecoverContext.unexpectedError} />; default: return <LoadingSpinner />; } } } OrchestrateApiRecover.propTypes = { apiRecoverContext: PropTypes.object, // The api setup context }; export default withApiRecoverContext(OrchestrateApiRecover);