PanelHeader.tsx 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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. {
  14. panelId: this.props.panel.id,
  15. edit: true,
  16. fullscreen: true,
  17. },
  18. false
  19. );
  20. };
  21. render() {
  22. let isFullscreen = false;
  23. let isLoading = false;
  24. let panelHeaderClass = classNames({ 'panel-header': true, 'grid-drag-handle': !isFullscreen });
  25. return (
  26. <div className={panelHeaderClass}>
  27. <span className="panel-info-corner">
  28. <i className="fa" />
  29. <span className="panel-info-corner-inner" />
  30. </span>
  31. {isLoading && (
  32. <span className="panel-loading">
  33. <i className="fa fa-spinner fa-spin" />
  34. </span>
  35. )}
  36. <div className="panel-title-container">
  37. <span className="panel-title">
  38. <span className="icon-gf panel-alert-icon" />
  39. <span className="panel-title-text">{this.props.panel.title}</span>
  40. <span className="panel-menu-container dropdown">
  41. <span className="fa fa-caret-down panel-menu-toggle" data-toggle="dropdown" />
  42. <ul className="dropdown-menu dropdown-menu--menu panel-menu" role="menu">
  43. <li>
  44. <a onClick={this.onEditPanel}>
  45. <i className="fa fa-fw fa-edit" /> Edit
  46. </a>
  47. </li>
  48. <li>
  49. <a href="asd">asd</a>
  50. </li>
  51. </ul>
  52. </span>
  53. <span className="panel-time-info">
  54. <i className="fa fa-clock-o" /> 4m
  55. </span>
  56. </span>
  57. </div>
  58. </div>
  59. );
  60. }
  61. }