PanelHeader.tsx 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import React, { PureComponent } from 'react';
  2. import classNames from 'classnames';
  3. import { PanelHeaderMenu } from './PanelHeaderMenu';
  4. import { DashboardModel } from 'app/features/dashboard/dashboard_model';
  5. import { PanelModel } from 'app/features/dashboard/panel_model';
  6. export interface Props {
  7. panel: PanelModel;
  8. dashboard: DashboardModel;
  9. }
  10. export class PanelHeader extends PureComponent<Props> {
  11. render() {
  12. const isFullscreen = false;
  13. const isLoading = false;
  14. const panelHeaderClass = classNames({ 'panel-header': true, 'grid-drag-handle': !isFullscreen });
  15. const { panel, dashboard } = this.props;
  16. return (
  17. <div className={panelHeaderClass}>
  18. <span className="panel-info-corner">
  19. <i className="fa" />
  20. <span className="panel-info-corner-inner" />
  21. </span>
  22. {isLoading && (
  23. <span className="panel-loading">
  24. <i className="fa fa-spinner fa-spin" />
  25. </span>
  26. )}
  27. <div className="panel-title-container">
  28. <div className="panel-title">
  29. <span className="icon-gf panel-alert-icon" />
  30. <span className="panel-title-text" data-toggle="dropdown">
  31. {panel.title} <span className="fa fa-caret-down panel-menu-toggle" />
  32. </span>
  33. <PanelHeaderMenu panel={panel} dashboard={dashboard} />
  34. <span className="panel-time-info">
  35. <i className="fa fa-clock-o" /> 4m
  36. </span>
  37. </div>
  38. </div>
  39. </div>
  40. );
  41. }
  42. }