PanelHeader.tsx 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import React from 'react';
  2. import classNames from 'classnames';
  3. import { PanelModel } from '../panel_model';
  4. import { DashboardModel } from '../dashboard_model';
  5. import { store } from 'app/stores/store';
  6. interface PanelHeaderProps {
  7. panel: PanelModel;
  8. dashboard: DashboardModel;
  9. }
  10. export class PanelHeader extends React.Component<PanelHeaderProps, any> {
  11. onEditPanel = () => {
  12. store.view.updateQuery({
  13. panelId: this.props.panel.id,
  14. edit: true,
  15. fullscreen: true,
  16. });
  17. };
  18. render() {
  19. let isFullscreen = false;
  20. let isLoading = false;
  21. let panelHeaderClass = classNames({ 'panel-header': true, 'grid-drag-handle': !isFullscreen });
  22. return (
  23. <div className={panelHeaderClass}>
  24. <span className="panel-info-corner">
  25. <i className="fa" />
  26. <span className="panel-info-corner-inner" />
  27. </span>
  28. {isLoading && (
  29. <span className="panel-loading">
  30. <i className="fa fa-spinner fa-spin" />
  31. </span>
  32. )}
  33. <div className="panel-title-container">
  34. <span className="panel-title">
  35. <span className="icon-gf panel-alert-icon" />
  36. <span className="panel-title-text">{this.props.panel.title}</span>
  37. <span className="panel-menu-container dropdown">
  38. <span className="fa fa-caret-down panel-menu-toggle" data-toggle="dropdown" />
  39. <ul className="dropdown-menu dropdown-menu--menu panel-menu" role="menu">
  40. <li>
  41. <a onClick={this.onEditPanel}>
  42. <i className="fa fa-fw fa-edit" /> Edit
  43. </a>
  44. </li>
  45. <li>
  46. <a href="asd">asd</a>
  47. </li>
  48. </ul>
  49. </span>
  50. <span className="panel-time-info">
  51. <i className="fa fa-clock-o" /> 4m
  52. </span>
  53. </span>
  54. </div>
  55. </div>
  56. );
  57. }
  58. }