ant-design/components/menu/demo/switch-mode.md
David 2843bd32dd
feat: Add ability to overwrite Menu theme at Menu.SubMenu level. (#33971)
* Add theme support to Menu.SubMenu

* Tidy up docs

* Tidy up docs

* Update components/menu/index.en-US.md

* Update components/menu/index.en-US.md

Co-authored-by: Amumu <yoyo837@hotmail.com>

* Add Chinese lang docs

* Extend menu theme demo to additionally demonstrate Sub-menu theming

* Add submenu theme demo

* Revert "Extend menu theme demo to additionally demonstrate Sub-menu theming"

This reverts commit 642a2b5b72322eb5f6d06d6eb644f877e7f6119c.

* Add tests

* Correct typo

* Make demo vertical so absolutely positioned popover doesn't overflow

* Make demo functional component

* Update components/menu/index.en-US.md

Co-authored-by: afc163 <afc163@gmail.com>

* Update components/menu/index.zh-CN.md

Co-authored-by: Amumu <yoyo837@hotmail.com>

* Update components/menu/demo/submenu-theme.md

Co-authored-by: MadCcc <1075746765@qq.com>

Co-authored-by: Amumu <yoyo837@hotmail.com>
Co-authored-by: afc163 <afc163@gmail.com>
Co-authored-by: MadCcc <1075746765@qq.com>
2022-02-14 15:21:33 +08:00

2.1 KiB
Executable File

order title
6
zh-CN en-US
切换菜单类型 Switch the menu type

zh-CN

展示动态切换模式。

en-US

Show the dynamic switching mode (between inline and vertical).

import { Menu, Switch, Divider } from 'antd';
import {
  MailOutlined,
  CalendarOutlined,
  AppstoreOutlined,
  SettingOutlined,
  LinkOutlined,
} from '@ant-design/icons';

const { SubMenu } = Menu;

const Demo = () => {
  const [mode, setMode] = React.useState('inline');
  const [theme, setTheme] = React.useState('light');

  const changeMode = value => {
    setMode(value ? 'vertical' : 'inline');
  };

  const changeTheme = value => {
    setTheme(value ? 'dark' : 'light');
  };

  return (
    <>
      <Switch onChange={changeMode} /> Change Mode
      <Divider type="vertical" />
      <Switch onChange={changeTheme} /> Change Style
      <br />
      <br />
      <Menu
        style={{ width: 256 }}
        defaultSelectedKeys={['1']}
        defaultOpenKeys={['sub1']}
        mode={mode}
        theme={theme}
      >
        <Menu.Item key="1" icon={<MailOutlined />}>
          Navigation One
        </Menu.Item>
        <Menu.Item key="2" icon={<CalendarOutlined />}>
          Navigation Two
        </Menu.Item>
        <SubMenu key="sub1" icon={<AppstoreOutlined />} title="Navigation Two">
          <Menu.Item key="3">Option 3</Menu.Item>
          <Menu.Item key="4">Option 4</Menu.Item>
          <SubMenu key="sub1-2" title="Submenu">
            <Menu.Item key="5">Option 5</Menu.Item>
            <Menu.Item key="6">Option 6</Menu.Item>
          </SubMenu>
        </SubMenu>
        <SubMenu key="sub2" icon={<SettingOutlined />} title="Navigation Three">
          <Menu.Item key="7">Option 7</Menu.Item>
          <Menu.Item key="8">Option 8</Menu.Item>
          <Menu.Item key="9">Option 9</Menu.Item>
          <Menu.Item key="10">Option 10</Menu.Item>
        </SubMenu>
        <Menu.Item key="link" icon={<LinkOutlined />}>
          <a href="https://ant.design" target="_blank" rel="noopener noreferrer">
            Ant Design
          </a>
        </Menu.Item>
      </Menu>
    </>
  );
};

ReactDOM.render(<Demo />, mountNode);