From 4cdf4d85d8dc2e8a5040bedb457f6b28ecc9cd7f Mon Sep 17 00:00:00 2001
From: CCherry07 <2405693142@qq.com>
Date: Thu, 13 Apr 2023 12:03:09 +0800
Subject: [PATCH 1/8] fix(menu): icon do not show problem
---
components/menu/src/MenuItem.tsx | 4 ++--
components/menu/src/SubMenu.tsx | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/components/menu/src/MenuItem.tsx b/components/menu/src/MenuItem.tsx
index a5406d1400..bcc8f0d263 100644
--- a/components/menu/src/MenuItem.tsx
+++ b/components/menu/src/MenuItem.tsx
@@ -248,9 +248,9 @@ export default defineComponent({
title={typeof title === 'string' ? title : undefined}
>
{cloneElement(
- icon,
+ typeof icon === 'function' ? : icon,
{
- class: `${prefixCls.value}-item-icon`,
+ class: `${prefixCls}-item-icon`,
},
false,
)}
diff --git a/components/menu/src/SubMenu.tsx b/components/menu/src/SubMenu.tsx
index e5764242d5..c6c7041081 100644
--- a/components/menu/src/SubMenu.tsx
+++ b/components/menu/src/SubMenu.tsx
@@ -224,7 +224,7 @@ export default defineComponent({
return (
<>
{cloneElement(
- icon,
+ typeof icon === 'function' ? : icon,
{
class: `${prefixCls.value}-item-icon`,
},
From 3ff733af4fed50e1073a405fe0807173cf702cb2 Mon Sep 17 00:00:00 2001
From: CCherry07 <2405693142@qq.com>
Date: Thu, 13 Apr 2023 18:40:52 +0800
Subject: [PATCH 2/8] fix(menu): icon do not show problem
---
components/components.ts | 1 +
components/menu/index.tsx | 2 ++
components/menu/src/MenuItem.tsx | 2 +-
3 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/components/components.ts b/components/components.ts
index bcd3dfeca6..d6b1e6d802 100644
--- a/components/components.ts
+++ b/components/components.ts
@@ -116,6 +116,7 @@ export type {
MenuItemProps,
MenuMode,
MenuDividerProps,
+ ItemType,
} from './menu';
export { default as Menu, MenuDivider, MenuItem, MenuItemGroup, SubMenu } from './menu';
diff --git a/components/menu/index.tsx b/components/menu/index.tsx
index a3d992e767..ce3e3e0cff 100644
--- a/components/menu/index.tsx
+++ b/components/menu/index.tsx
@@ -10,6 +10,7 @@ import Divider from './src/Divider';
import type { MenuDividerProps } from './src/Divider';
import type { App, Plugin } from 'vue';
import type { MenuTheme, MenuMode } from './src/interface';
+import type { ItemType } from './src/hooks/useItems';
/* istanbul ignore next */
Menu.install = function (app: App) {
app.component(Menu.name, Menu);
@@ -32,6 +33,7 @@ export type {
MenuTheme,
MenuMode,
MenuDividerProps,
+ ItemType,
};
export {
SubMenu,
diff --git a/components/menu/src/MenuItem.tsx b/components/menu/src/MenuItem.tsx
index bcc8f0d263..4538a001d7 100644
--- a/components/menu/src/MenuItem.tsx
+++ b/components/menu/src/MenuItem.tsx
@@ -250,7 +250,7 @@ export default defineComponent({
{cloneElement(
typeof icon === 'function' ? : icon,
{
- class: `${prefixCls}-item-icon`,
+ class: `${prefixCls.value}-item-icon`,
},
false,
)}
From 6d5aa79a6d4b0853d00ce5bd9781ef4a4ed6b63e Mon Sep 17 00:00:00 2001
From: CCherry07 <2405693142@qq.com>
Date: Thu, 13 Apr 2023 18:41:17 +0800
Subject: [PATCH 3/8] feat(menu): update demo
---
components/menu/demo/horizontal.vue | 103 ++++++------
components/menu/demo/index.vue | 10 +-
components/menu/demo/inline-collapsed.vue | 184 ++++++++++++----------
components/menu/demo/inline.vue | 133 +++++++---------
components/menu/demo/sider-current.vue | 120 +++++++-------
components/menu/demo/submenu-theme.vue | 84 ++++++++++
components/menu/demo/switch-mode.vue | 128 +++++++--------
components/menu/demo/template.vue | 127 ---------------
components/menu/demo/theme.vue | 144 ++++++++++-------
components/menu/demo/vertical.vue | 141 ++++++++++-------
10 files changed, 590 insertions(+), 584 deletions(-)
create mode 100644 components/menu/demo/submenu-theme.vue
delete mode 100644 components/menu/demo/template.vue
diff --git a/components/menu/demo/horizontal.vue b/components/menu/demo/horizontal.vue
index 670ac66ab5..612795f40b 100644
--- a/components/menu/demo/horizontal.vue
+++ b/components/menu/demo/horizontal.vue
@@ -17,54 +17,65 @@ Horizontal top navigation menu.
-
-
-
-
-
- Navigation One
-
-
-
-
-
- Navigation Two
-
-
-
-
-
- Navigation Three - Submenu
-
- Option 1
- Option 2
-
-
- Option 3
- Option 4
-
-
-
-
- Navigation Four - Link
-
-
-
+
-
diff --git a/components/menu/demo/index.vue b/components/menu/demo/index.vue
index b11fef036c..af0a2eb8a3 100644
--- a/components/menu/demo/index.vue
+++ b/components/menu/demo/index.vue
@@ -4,10 +4,10 @@
-
-
-
+
+
+
@@ -22,7 +22,7 @@ import SiderCurrent from './sider-current.vue';
import SwitchMode from './switch-mode.vue';
import Theme from './theme.vue';
import Vertical from './vertical.vue';
-import TemplateSingleFile from './template.vue';
+import SubmenuTheme from './submenu-theme.vue';
export default defineComponent({
CN,
@@ -35,7 +35,7 @@ export default defineComponent({
SwitchMode,
Theme,
Vertical,
- TemplateSingleFile,
+ SubmenuTheme,
},
});
diff --git a/components/menu/demo/inline-collapsed.vue b/components/menu/demo/inline-collapsed.vue
index 60cb34e232..2943ebc3a3 100644
--- a/components/menu/demo/inline-collapsed.vue
+++ b/components/menu/demo/inline-collapsed.vue
@@ -23,62 +23,22 @@ Here is [a complete demo](/components/layout/#components-layout-demo-side) with
-
+
-
-
-
-
- Option 1
-
-
-
-
-
- Option 2
-
-
-
-
-
- Option 3
-
-
-
-
-
- Navigation One
- Option 5
- Option 6
- Option 7
- Option 8
-
-
-
-
-
- Navigation Two
- Option 9
- Option 10
-
- Option 11
- Option 12
-
-
-
+ :inline-collapsed="state.collapsed"
+ :items="items"
+ >
-
diff --git a/components/menu/demo/inline.vue b/components/menu/demo/inline.vue
index fcfdbb831b..6b263c6c3c 100644
--- a/components/menu/demo/inline.vue
+++ b/components/menu/demo/inline.vue
@@ -22,83 +22,66 @@ Vertical menu with inline submenus.
v-model:selectedKeys="selectedKeys"
style="width: 256px"
mode="inline"
+ :items="items"
@click="handleClick"
- >
-
-
-
-
- Navigation One
-
-
-
-
- Item 1
- Option 1
- Option 2
-
-
- Option 3
- Option 4
-
-
-
-
-
-
- Navigation Two
- Option 5
- Option 6
-
- Option 7
- Option 8
-
-
-
-
-
-
- Navigation Three
- Option 9
- Option 10
- Option 11
- Option 12
-
-
+ >
-
diff --git a/components/menu/demo/sider-current.vue b/components/menu/demo/sider-current.vue
index 5df9b97586..57d6309ee3 100644
--- a/components/menu/demo/sider-current.vue
+++ b/components/menu/demo/sider-current.vue
@@ -19,75 +19,67 @@ Click the menu and you will see that all the other menus gets collapsed to keep
-
-
-
-
- Navigation One
- Option 1
- Option 2
- Option 3
- Option 4
-
-
-
-
-
- Navigation Two
-
- Option 5
- Option 6
-
- Option 7
- Option 8
-
-
-
-
-
-
- Navigation Three
- Option 9
- Option 10
- Option 11
- Option 12
-
-
+ >
-
diff --git a/components/menu/demo/submenu-theme.vue b/components/menu/demo/submenu-theme.vue
new file mode 100644
index 0000000000..f3495b4711
--- /dev/null
+++ b/components/menu/demo/submenu-theme.vue
@@ -0,0 +1,84 @@
+
+---
+order: 2
+title:
+ zh-CN: 子菜单主题
+ en-US: SubMenu theme
+---
+
+## zh-CN
+
+你可以通过 `theme` 属性来设置 SubMenu 的主题从而达到不同目录树下不同主题色的效果。该例子默认为根目录深色,子目录浅色效果。
+
+## en-US
+
+You can config SubMenu theme with `theme` prop to enable different theme color effect. This sample is dark for root and light for SubMenu.
+
+
+
+
+
+
+
diff --git a/components/menu/demo/switch-mode.vue b/components/menu/demo/switch-mode.vue
index 60f1774b7d..81f71d2620 100644
--- a/components/menu/demo/switch-mode.vue
+++ b/components/menu/demo/switch-mode.vue
@@ -18,60 +18,25 @@ Show the dynamic switching mode (between `inline` and `vertical`).
-
+
Change Mode
-
+
Change Theme
-
-
-
-
- Navigation One
-
-
-
-
-
- Navigation Two
-
-
-
-
-
- Navigation Three
- Option 3
- Option 4
-
- Option 5
- Option 6
-
-
-
-
-
-
-
- Navigation Four
- Option 7
- Option 8
- Option 9
- Option 10
-
-
+ :mode="state.mode"
+ :items="items"
+ :theme="state.theme"
+ >
-
diff --git a/components/menu/demo/template.vue b/components/menu/demo/template.vue
deleted file mode 100644
index 354ea04db2..0000000000
--- a/components/menu/demo/template.vue
+++ /dev/null
@@ -1,127 +0,0 @@
-
----
-order: 99
-title:
- zh-CN: 单文件递归菜单
- en-US: Single file recursive menu
----
-
-## zh-CN
-使用单文件方式递归生成菜单。
-
-## en-US
-Use the single file method to recursively generate menus.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ item.title }}
-
-
-
-
-
-
-
-
-
-
diff --git a/components/menu/demo/theme.vue b/components/menu/demo/theme.vue
index 14e1a40d09..b748f4d23d 100644
--- a/components/menu/demo/theme.vue
+++ b/components/menu/demo/theme.vue
@@ -32,46 +32,12 @@ There are two built-in themes: `light` and `dark`. The default value is `light`.
style="width: 256px"
mode="inline"
:theme="theme"
- >
-
-
-
-
- Navigation One
-
-
-
-
-
- Navigation Two
-
-
-
-
-
- Navigation Three
- Option 3
- Option 4
-
- Option 5
- Option 6
-
-
-
-
-
-
- Navigation Four
- Option 7
- Option 8
- Option 9
- Option 10
-
-
+ :items="items"
+ />
-
diff --git a/components/menu/demo/vertical.vue b/components/menu/demo/vertical.vue
index 6fd2ffa2eb..aced56ea6b 100644
--- a/components/menu/demo/vertical.vue
+++ b/components/menu/demo/vertical.vue
@@ -22,46 +22,12 @@ Submenus open as pop-ups.
v-model:selectedKeys="selectedKeys"
style="width: 256px"
mode="vertical"
+ :items="items"
@click="handleClick"
- >
-
-
-
-
- Navigation One
-
-
-
-
-
- Navigation Two
-
-
-
-
-
- Navigation Three
- Option 3
- Option 4
-
- Option 5
- Option 6
-
-
-
-
-
-
- Navigation Four
- Option 7
- Option 8
- Option 9
- Option 10
-
-
+ />
-
From 91c375ee2b77bc8d463af747eccb153ee334bcf3 Mon Sep 17 00:00:00 2001
From: CCherry07 <2405693142@qq.com>
Date: Thu, 13 Apr 2023 18:41:30 +0800
Subject: [PATCH 4/8] test(menu): update demo snap
---
.../__tests__/__snapshots__/demo.test.js.snap | 191 +++++++++---------
1 file changed, 101 insertions(+), 90 deletions(-)
diff --git a/components/menu/__tests__/__snapshots__/demo.test.js.snap b/components/menu/__tests__/__snapshots__/demo.test.js.snap
index 16485ab6fb..1841b57436 100644
--- a/components/menu/__tests__/__snapshots__/demo.test.js.snap
+++ b/components/menu/__tests__/__snapshots__/demo.test.js.snap
@@ -1,19 +1,19 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`renders ./components/menu/demo/horizontal.vue correctly 1`] = `
-