SideMenu.tsx 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import React, { PureComponent } from 'react';
  2. import appEvents from '../../app_events';
  3. import { contextSrv } from 'app/core/services/context_srv';
  4. import TopSection from './TopSection';
  5. import BottomSection from './BottomSection';
  6. import { store } from 'app/store/store';
  7. export class SideMenu extends PureComponent {
  8. toggleSideMenu = () => {
  9. // ignore if we just made a location change, stops hiding sidemenu on double clicks of back button
  10. const timeSinceLocationChanged = new Date().getTime() - store.getState().location.lastUpdated;
  11. if (timeSinceLocationChanged < 1000) {
  12. return;
  13. }
  14. contextSrv.toggleSideMenu();
  15. appEvents.emit('toggle-sidemenu');
  16. };
  17. toggleSideMenuSmallBreakpoint = () => {
  18. appEvents.emit('toggle-sidemenu-mobile');
  19. };
  20. render() {
  21. return [
  22. <div className="sidemenu__logo" onClick={this.toggleSideMenu} key="logo">
  23. <img src="public/img/grafana_icon.svg" alt="Grafana" />
  24. </div>,
  25. <div className="sidemenu__logo_small_breakpoint" onClick={this.toggleSideMenuSmallBreakpoint} key="hamburger">
  26. <i className="fa fa-bars" />
  27. <span className="sidemenu__close">
  28. <i className="fa fa-times" />
  29. &nbsp;Close
  30. </span>
  31. </div>,
  32. <TopSection key="topsection" />,
  33. <BottomSection key="bottomsection" />,
  34. ];
  35. }
  36. }