UNPKG

passbolt-styleguide

Version:

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

98 lines (92 loc) 4.07 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 2.13.0 */ import React, {Component} from "react"; import DisplayUserBadgeMenu from "../../User/DisplayUserBadgeMenu/DisplayUserBadgeMenu"; import FilterResourcesByFolders from "../FilterResourcesByFolders/FilterResourcesByFolders"; import DisplayResourceFolderDetails from "../../ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetails"; import DisplayResourceDetails from "../../ResourceDetails/DisplayResourceDetails/DisplayResourceDetails"; import {withAppContext} from "../../../contexts/AppContext"; import {withResourceWorkspace} from "../../../contexts/ResourceWorkspaceContext"; import FilterResourcesByTags from "../FilterResourcesByTags/FilterResourcesByTags"; import PropTypes from "prop-types"; import FilterResourcesByText from "../FilterResourcesByText/FilterResourcesByText"; import FilterResourcesByShortcuts from "../FilterResourcesByShortcuts/FilterResourcesByShortcuts"; import FilterResourcesByBreadcrumb from "../FilterResourcesByBreadcrumb/FilterResourcesByBreadcrumb"; import DisplayResourcesWorkspaceMenu from "./DisplayResourcesWorkspaceMenu"; import Logo from "../../Common/Navigation/Header/Logo"; import DisplayResourcesWorkspaceMainMenu from "./DisplayResourcesWorkspaceMainMenu"; import {withTranslation} from "react-i18next"; import FilterResourcesByGroups from "../FilterResourcesByGroups/FilterResourcesByGroups"; import DisplayResourcesList from "../DisplayResourcesList/DisplayResourcesList"; class Workspace extends Component { /** * Has lock for the detail display * @returns {boolean} */ hasLockDetail() { return this.props.resourceWorkspaceContext.lockDisplayDetail; } /** * Render the component * @return {JSX} */ render() { const canUseFolders = this.props.context.siteSettings.canIUse("folders"); const canUseTags = this.props.context.siteSettings.canIUse("tags"); return ( <div> <div className="header second"> <Logo/> <FilterResourcesByText placeholder={this.props.t("Search passwords")}/> <DisplayUserBadgeMenu baseUrl={this.props.context.userSettings.getTrustedDomain()} user={this.props.context.loggedInUser}/> </div> <div className="header third"> <div className="col1 main-action-wrapper"> <DisplayResourcesWorkspaceMainMenu/> </div> <DisplayResourcesWorkspaceMenu/> </div> <div className="panel main"> <div className="panel left"> <FilterResourcesByShortcuts/> {canUseFolders && <FilterResourcesByFolders/> } <FilterResourcesByGroups/> {canUseTags && <FilterResourcesByTags/> } </div> <div className="panel middle"> <FilterResourcesByBreadcrumb/> <DisplayResourcesList/> {this.props.resourceWorkspaceContext.details.folder && this.hasLockDetail() && <DisplayResourceFolderDetails/> } {this.props.resourceWorkspaceContext.details.resource && this.hasLockDetail() && <DisplayResourceDetails/> } </div> </div> </div> ); } } Workspace.propTypes = { context: PropTypes.any, // The application context resourceWorkspaceContext: PropTypes.any, t: PropTypes.func, // The translation function }; export default withAppContext(withResourceWorkspace(withTranslation('common')(Workspace)));