import React, { PureComponent } from 'react'; import classNames from 'classnames'; import PanelHeaderCorner from './PanelHeaderCorner'; import { PanelHeaderMenu } from './PanelHeaderMenu'; import { DashboardModel } from 'app/features/dashboard/dashboard_model'; import { PanelModel } from 'app/features/dashboard/panel_model'; import { ClickOutsideWrapper } from 'app/core/components/ClickOutsideWrapper/ClickOutsideWrapper'; export interface Props { panel: PanelModel; dashboard: DashboardModel; timeInfo: string; } interface State { panelMenuOpen: boolean; } export class PanelHeader extends PureComponent { state = { panelMenuOpen: false, }; onMenuToggle = event => { event.stopPropagation(); this.setState(prevState => ({ panelMenuOpen: !prevState.panelMenuOpen, })); }; closeMenu = () => { this.setState({ panelMenuOpen: false, }); }; render() { const isFullscreen = false; const isLoading = false; const panelHeaderClass = classNames({ 'panel-header': true, 'grid-drag-handle': !isFullscreen }); const { panel, dashboard, timeInfo } = this.props; return ( <>
{isLoading && ( )}
{panel.title} {this.state.panelMenuOpen && ( )} {timeInfo && ( {timeInfo} )}
); } }