ClusterMenu.tsx 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import React, { CSSProperties } from 'react';
  2. import { Cluster } from 'types';
  3. import { NavLink } from 'react-router-dom';
  4. interface Props extends Cluster {}
  5. const DefaultIcon: React.FC = () => {
  6. const style: CSSProperties = {
  7. width: '.6rem',
  8. left: '-8px',
  9. top: '-4px',
  10. position: 'relative',
  11. };
  12. return (
  13. <span title="Default Cluster" className="icon has-text-primary is-small">
  14. <i style={style} data-fa-transform="rotate-340" className="fas fa-thumbtack" />
  15. </span>
  16. )
  17. };
  18. const ClusterMenu: React.FC<Props> = ({
  19. id,
  20. name,
  21. defaultCluster,
  22. }) => (
  23. <ul className="menu-list">
  24. <li>
  25. <NavLink exact to={`/clusters/${id}`} activeClassName="is-active" title={name} className="has-text-overflow-ellipsis">
  26. {defaultCluster && <DefaultIcon />}
  27. {name}
  28. </NavLink>
  29. <ul>
  30. <NavLink to={`/clusters/${id}/topics`} activeClassName="is-active" title="Dashboard">
  31. Topics
  32. </NavLink>
  33. </ul>
  34. </li>
  35. </ul>
  36. );
  37. export default ClusterMenu;