PanelHeaderMenuItem.tsx 1022 B

12345678910111213141516171819202122232425262728293031323334
  1. import React, { SFC } from 'react';
  2. export enum PanelHeaderMenuItemTypes {
  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. }
  16. export const PanelHeaderMenuItem: SFC<PanelHeaderMenuItemProps> = props => {
  17. const isSubMenu = props.type === PanelHeaderMenuItemTypes.SubMenu;
  18. const isDivider = props.type === PanelHeaderMenuItemTypes.Divider;
  19. return isDivider ? (
  20. <li className="divider" />
  21. ) : (
  22. <li className={isSubMenu ? 'dropdown-submenu' : null}>
  23. <a onClick={props.handleClick}>
  24. {props.iconClassName && <i className={props.iconClassName} />}
  25. <span className="dropdown-item-text">{props.text}</span>
  26. {props.shortcut && <span className="dropdown-menu-item-shortcut">{props.shortcut}</span>}
  27. </a>
  28. {props.children}
  29. </li>
  30. );
  31. };