import React, { Component } from "react"; import PropTypes from "prop-types"; import { Link } from "react-router"; import permissionUtils from "utilities/permissions"; import Button from "components/buttons/Button"; import FleetAce from "components/FleetAce"; import queryInterface from "interfaces/query"; import userInterface from "interfaces/user"; import SecondarySidePanelContainer from "components/side_panels/SecondarySidePanelContainer"; const baseClass = "query-details-side-panel"; class QueryDetailsSidePanel extends Component { static propTypes = { onEditQuery: PropTypes.func.isRequired, query: queryInterface.isRequired, currentUser: userInterface, }; handleEditQueryClick = (evt) => { evt.preventDefault(); const { onEditQuery, query } = this.props; return onEditQuery(query); }; renderPacks = () => { const { query } = this.props; const { packs } = query; if (!packs || (packs && !packs.length)) { return (

There are no packs associated with this query.

); } return ( ); }; render() { const { query, currentUser } = this.props; const { handleEditQueryClick, renderPacks } = this; const { description, name, query: queryText, observer_can_run } = query; const renderCTA = () => { if ( permissionUtils.isGlobalAdmin(currentUser) || permissionUtils.isGlobalMaintainer(currentUser) ) { return "Edit or run query"; } if ( permissionUtils.isAnyTeamMaintainer(currentUser) || (permissionUtils.isOnlyObserver(currentUser) && observer_can_run) ) { return "Run query"; } return "Show query"; }; return (

Query

{name}

{!permissionUtils.isOnlyObserver(currentUser) && ( <>

SQL

)}

Description

{description || <>No description available.}

{!permissionUtils.isOnlyObserver(currentUser) && ( <>

Packs

{renderPacks()} )}
); } } export default QueryDetailsSidePanel;