DashNavButton.tsx 858 B

12345678910111213141516171819202122232425262728293031323334353637
  1. // Libraries
  2. import React, { FunctionComponent } from 'react';
  3. // Components
  4. import { Tooltip } from '@grafana/ui';
  5. interface Props {
  6. icon: string;
  7. tooltip: string;
  8. classSuffix: string;
  9. onClick?: () => void;
  10. href?: string;
  11. }
  12. export const DashNavButton: FunctionComponent<Props> = ({ icon, tooltip, classSuffix, onClick, href }) => {
  13. if (onClick) {
  14. return (
  15. <Tooltip content={tooltip}>
  16. <button
  17. className={`btn navbar-button navbar-button--${classSuffix}`}
  18. onClick={onClick}
  19. aria-label={`${tooltip} navbar button`}
  20. >
  21. <i className={icon} />
  22. </button>
  23. </Tooltip>
  24. );
  25. }
  26. return (
  27. <Tooltip content={tooltip}>
  28. <a className={`btn navbar-button navbar-button--${classSuffix}`} href={href}>
  29. <i className={icon} />
  30. </a>
  31. </Tooltip>
  32. );
  33. };