mirror of
https://gitee.com/nocobase/nocobase.git
synced 2025-07-01 18:52:20 +08:00
feat: support hiding menu items (#5624)
* feat: support hiding menu items * fix: hidden
This commit is contained in:
parent
a963898893
commit
32eeb88101
@ -20,6 +20,7 @@ import {
|
||||
SchemaSettingsModalItem,
|
||||
SchemaSettingsRemove,
|
||||
SchemaSettingsSubMenu,
|
||||
SchemaSettingsSwitchItem,
|
||||
useAPIClient,
|
||||
useDesignable,
|
||||
useURLAndHTMLSchema,
|
||||
@ -373,6 +374,20 @@ export const MenuDesigner = () => {
|
||||
initialValues={initialValues}
|
||||
onSubmit={onEditSubmit}
|
||||
/>
|
||||
<SchemaSettingsSwitchItem
|
||||
title={t('Hidden')}
|
||||
checked={fieldSchema['x-component-props']?.hidden}
|
||||
onChange={(v) => {
|
||||
fieldSchema['x-component-props'].hidden = !!v;
|
||||
field.componentProps.hidden = !!v;
|
||||
dn.emit('patch', {
|
||||
schema: {
|
||||
'x-uid': fieldSchema['x-uid'],
|
||||
'x-component-props': fieldSchema['x-component-props'],
|
||||
},
|
||||
});
|
||||
}}
|
||||
/>
|
||||
<SchemaSettingsModalItem
|
||||
title={t('Move to')}
|
||||
eventKey="move-to"
|
||||
|
@ -507,14 +507,16 @@ const menuItemTitleStyle = {
|
||||
Menu.Item = observer(
|
||||
(props) => {
|
||||
const { t } = useMenuTranslation();
|
||||
const { designable } = useDesignable();
|
||||
const { pushMenuItem } = useCollectMenuItems();
|
||||
const { icon, children, ...others } = props;
|
||||
const { icon, children, hidden, ...others } = props;
|
||||
const schema = useFieldSchema();
|
||||
const field = useField();
|
||||
const Designer = useContext(MenuItemDesignerContext);
|
||||
const item = useMemo(() => {
|
||||
return {
|
||||
...others,
|
||||
hidden: designable ? false : hidden,
|
||||
className: menuItemClass,
|
||||
key: schema.name,
|
||||
eventKey: schema.name,
|
||||
@ -599,7 +601,8 @@ const MenuURLButton = ({ href, params, icon }) => {
|
||||
Menu.URL = observer(
|
||||
(props) => {
|
||||
const { pushMenuItem } = useCollectMenuItems();
|
||||
const { icon, children, ...others } = props;
|
||||
const { designable } = useDesignable();
|
||||
const { icon, children, hidden, ...others } = props;
|
||||
const schema = useFieldSchema();
|
||||
const field = useField();
|
||||
const Designer = useContext(MenuItemDesignerContext);
|
||||
@ -612,6 +615,7 @@ Menu.URL = observer(
|
||||
const item = useMemo(() => {
|
||||
return {
|
||||
...others,
|
||||
hidden: designable ? false : hidden,
|
||||
className: menuItemClass,
|
||||
key: schema.name,
|
||||
eventKey: schema.name,
|
||||
@ -625,7 +629,7 @@ Menu.URL = observer(
|
||||
</SchemaContext.Provider>
|
||||
),
|
||||
};
|
||||
}, [field.title, icon, props.href, schema, JSON.stringify(props.params)]);
|
||||
}, [field.title, designable, hidden, icon, props.href, schema, JSON.stringify(props.params)]);
|
||||
|
||||
pushMenuItem(item);
|
||||
return null;
|
||||
@ -636,9 +640,10 @@ Menu.URL = observer(
|
||||
Menu.SubMenu = observer(
|
||||
(props) => {
|
||||
const { t } = useMenuTranslation();
|
||||
const { designable } = useDesignable();
|
||||
const { Component, getMenuItems } = useMenuItem();
|
||||
const { pushMenuItem } = useCollectMenuItems();
|
||||
const { icon, children, ...others } = props;
|
||||
const { icon, children, hidden, ...others } = props;
|
||||
const schema = useFieldSchema();
|
||||
const field = useField();
|
||||
const mode = useContext(MenuModeContext);
|
||||
@ -646,6 +651,7 @@ Menu.SubMenu = observer(
|
||||
const submenu = useMemo(() => {
|
||||
return {
|
||||
...others,
|
||||
hidden: designable ? false : hidden,
|
||||
className: menuItemClass,
|
||||
key: schema.name,
|
||||
eventKey: schema.name,
|
||||
|
Loading…
x
Reference in New Issue
Block a user