TopMenu.js 1.96 KB
import React, { Component, Fragment } from 'react'
import { Menu, Icon } from 'antd'
import PropTypes from 'prop-types'

const SubMenu = Menu.SubMenu
const MenuItemGroup = Menu.ItemGroup

class TopMenu extends Component {
  state = {
    current: 'mail',
  }

  handleClick = e => {
    console.log('click : ', e)
    this.setState({
      current: e.key,
    })
  }

  render() {
    let { menuTitle } = this.props
    return (
      <Fragment>
        <Menu
          onClick={this.handleClick}
          selectedKeys={[this.state.current]}
          mode="horizontal">
          {menuTitle &&
            menuTitle.map(title => {
              return (
                <Menu.Item key={title.key} disabled={title.disabled}>
                  <Icon type={title.iconType} />
                  {title.name}
                </Menu.Item>
              )
            })}
          <SubMenu
            title={
              <span className="submenu-title-wrapper">
                <Icon type="setting" />
                Navigation Three - Submenu
              </span>
            }>
            <MenuItemGroup title="Item 1">
              <Menu.Item key="setting:1">Option 1</Menu.Item>
              <Menu.Item key="setting:2">Option 2</Menu.Item>
            </MenuItemGroup>
            <MenuItemGroup title="Item 2">
              <Menu.Item key="setting:3">Option 3</Menu.Item>
              <Menu.Item key="setting:4">Option 4</Menu.Item>
            </MenuItemGroup>
          </SubMenu>
          <Menu.Item key="alipay">
            <a
              href="https://ant.design"
              target="_blank"
              rel="noopener noreferrer">
              Navigation Four - Link
            </a>
          </Menu.Item>
        </Menu>
      </Fragment>
    )
  }
}

// You can declare that a prop is a specific JS type.
TopMenu.propTypes = {
  titleMenuItem: PropTypes.array.isRequired,
}

// Default values for props
TopMenu.defaultProps = {
  titleMenuItem: [],
}
export default TopMenu