Nav.tsx 967 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import React from 'react';
  2. import { Cluster } from 'redux/interfaces';
  3. import { NavLink } from 'react-router-dom';
  4. import cx from 'classnames';
  5. import ClusterMenu from './ClusterMenu';
  6. interface Props {
  7. isClusterListFetched: boolean;
  8. clusters: Cluster[];
  9. className?: string;
  10. }
  11. const Nav: React.FC<Props> = ({
  12. isClusterListFetched,
  13. clusters,
  14. className,
  15. }) => (
  16. <aside className={cx('menu has-shadow has-background-white', className)}>
  17. <p className="menu-label">General</p>
  18. <ul className="menu-list">
  19. <li>
  20. <NavLink exact to="/ui" activeClassName="is-active" title="Dashboard">
  21. Dashboard
  22. </NavLink>
  23. </li>
  24. </ul>
  25. <p className="menu-label">Clusters</p>
  26. {!isClusterListFetched && <div className="loader" />}
  27. {isClusterListFetched &&
  28. clusters.map((cluster, index) => (
  29. <ClusterMenu {...cluster} key={`cluster-list-item-key-${index}`} />
  30. ))}
  31. </aside>
  32. );
  33. export default Nav;