MenuItem.tsx 691 Bytes
Newer Older
陈帅's avatar
陈帅 committed
1 2 3 4 5
import React from 'react';
import { Command } from 'gg-editor';
import IconFont from '../../common/IconFont';
import styles from './index.less';

陈帅's avatar
use ts  
陈帅 committed
6 7 8 9 10 11 12 13 14 15
const upperFirst = (str: string) => {
  return str.toLowerCase().replace(/( |^)[a-z]/g, (l: string) => l.toUpperCase());
};

interface MenuItemProps {
  command: string;
  icon?: string;
  text?: string;
}
const MenuItem: React.SFC<MenuItemProps> = props => {
陈帅's avatar
陈帅 committed
16 17 18 19 20 21 22 23 24 25 26 27 28
  const { command, icon, text } = props;

  return (
    <Command name={command}>
      <div className={styles.item}>
        <IconFont type={`icon-${icon || command}`} />
        <span>{text || upperFirst(command)}</span>
      </div>
    </Command>
  );
};

export default MenuItem;