PanelHeaderMenuItem.tsx 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import React, { SFC } from 'react';
  2. export enum PanelHeaderMenuItemTypes { // TODO: Evaluate. Remove?
  3. Button = 'Button', // ?
  4. Divider = 'Divider',
  5. Link = 'Link',
  6. SubMenu = 'SubMenu',
  7. }
  8. export interface PanelHeaderMenuItemProps {
  9. type: PanelHeaderMenuItemTypes;
  10. text?: string;
  11. iconClassName?: string;
  12. handleClick?: () => void;
  13. shortcut?: string;
  14. children?: any;
  15. subMenu?: PanelHeaderMenuItemProps[];
  16. role?: string;
  17. }
  18. export const PanelHeaderMenuItem: SFC<PanelHeaderMenuItemProps> = props => {
  19. const isSubMenu = props.type === PanelHeaderMenuItemTypes.SubMenu;
  20. const isDivider = props.type === PanelHeaderMenuItemTypes.Divider;
  21. return isDivider ? (
  22. <li className="divider" />
  23. ) : (
  24. <li className={isSubMenu ? 'dropdown-submenu' : null}>
  25. <a onClick={props.handleClick}>
  26. {props.iconClassName && <i className={props.iconClassName} />}
  27. <span className="dropdown-item-text">{props.text}</span>
  28. {props.shortcut && <span className="dropdown-menu-item-shortcut">{props.shortcut}</span>}
  29. </a>
  30. {props.children}
  31. </li>
  32. );
  33. };