Skip to content

Commit e752af2

Browse files
committed
feat(Menu): add item theme
1 parent 01856d3 commit e752af2

File tree

4 files changed

+33
-6
lines changed

4 files changed

+33
-6
lines changed

src/components/lab/Menu/MenuItem.scss

+22
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,28 @@ $b: '.#{variables.$ns}menu2-item';
5555
content: '';
5656
}
5757

58+
&_theme {
59+
&_info {
60+
--_--text-color: var(--g-color-text-info);
61+
}
62+
63+
&_success {
64+
--_--text-color: var(--g-color-text-positive);
65+
}
66+
67+
&_warning {
68+
--_--text-color: var(--g-color-text-warning);
69+
}
70+
71+
&_danger {
72+
--_--text-color: var(--g-color-text-danger);
73+
}
74+
75+
&_utility {
76+
--_--text-color: var(--g-color-text-utility);
77+
}
78+
}
79+
5880
&_active {
5981
--_--background-color: var(--g-color-base-generic-hover);
6082
}

src/components/lab/Menu/MenuItem.tsx

+2
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ export const MenuItem = React.forwardRef(
4040
| React.Ref<T extends string ? React.ComponentRef<T> : T>,
4141
) => {
4242
const {
43+
theme,
4344
selected = false,
4445
disabled = false,
4546
icon,
@@ -120,6 +121,7 @@ export const MenuItem = React.forwardRef(
120121
tabIndex,
121122
className: b(
122123
{
124+
theme,
123125
size: menuContext.size,
124126
active: isActive,
125127
selected,

src/components/lab/Menu/__stories__/utils.tsx

+6-6
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,11 @@ export function getSimpleMenuItems(args: MenuProps, icon?: boolean) {
3131
<MenuItem key="move" icon={icon ? <Icon data={ArrowsExpand} size={iconSize} /> : undefined}>
3232
Move
3333
</MenuItem>,
34-
<MenuItem key="delete" icon={icon ? <Icon data={TrashBin} size={iconSize} /> : undefined}>
34+
<MenuItem
35+
key="delete"
36+
icon={icon ? <Icon data={TrashBin} size={iconSize} /> : undefined}
37+
theme="danger"
38+
>
3539
Delete
3640
</MenuItem>,
3741
];
@@ -64,11 +68,7 @@ export function getFullFeaturedMenuItems(args: MenuProps, inline?: boolean) {
6468
Cut
6569
</Menu.Item>,
6670
<Menu.Divider key="divider1" />,
67-
<Menu.Item
68-
key="delete"
69-
icon={<Icon data={TrashBin} size={iconSize} />}
70-
style={{color: 'var(--g-color-text-danger)'}}
71-
>
71+
<Menu.Item key="delete" icon={<Icon data={TrashBin} size={iconSize} />} theme="danger">
7272
Delete
7373
</Menu.Item>,
7474
];

src/components/lab/Menu/types.ts

+3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import type {DOMProps, QAProps} from '../../types';
77

88
export type MenuSize = 's' | 'm' | 'l' | 'xl';
99

10+
export type MenuItemTheme = 'normal' | 'info' | 'success' | 'warning' | 'danger' | 'utility';
11+
1012
export interface MenuProps
1113
extends Pick<PopupProps, 'open' | 'onOpenChange' | 'placement'>,
1214
DOMProps,
@@ -24,6 +26,7 @@ export interface MenuProps
2426
}
2527

2628
interface MenuItemCommonProps extends QAProps {
29+
theme?: MenuItemTheme;
2730
selected?: boolean;
2831
disabled?: boolean;
2932
icon?: React.ReactElement;

0 commit comments

Comments
 (0)