mirror of
https://gitee.com/nocobase/nocobase.git
synced 2025-07-01 18:52:20 +08:00
Merge branch 'next' into develop
This commit is contained in:
commit
2a03343d5d
@ -52,6 +52,7 @@ import { KeepAlive } from './KeepAlive';
|
|||||||
import { NocoBaseDesktopRoute, NocoBaseDesktopRouteType } from './convertRoutesToSchema';
|
import { NocoBaseDesktopRoute, NocoBaseDesktopRouteType } from './convertRoutesToSchema';
|
||||||
import { MenuSchemaToolbar, ResetThemeTokenAndKeepAlgorithm } from './menuItemSettings';
|
import { MenuSchemaToolbar, ResetThemeTokenAndKeepAlgorithm } from './menuItemSettings';
|
||||||
import { userCenterSettings } from './userCenterSettings';
|
import { userCenterSettings } from './userCenterSettings';
|
||||||
|
import { createGlobalStyle, createStyles } from 'antd-style';
|
||||||
|
|
||||||
export { KeepAlive, NocoBaseDesktopRouteType };
|
export { KeepAlive, NocoBaseDesktopRouteType };
|
||||||
|
|
||||||
@ -268,7 +269,7 @@ const GroupItem: FC<{ item: any }> = (props) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const WithTooltip: FC<{ title: string; hidden: boolean }> = (props) => {
|
const WithTooltip: FC<{ title: string; hidden: boolean }> = (props) => {
|
||||||
const { inHeader } = useContext(headerContext);
|
const { inHeader } = useContext(HeaderContext);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<RouteContext.Consumer>
|
<RouteContext.Consumer>
|
||||||
@ -406,7 +407,7 @@ const contentStyle = {
|
|||||||
paddingInline: 0,
|
paddingInline: 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
const headerContext = React.createContext<{ inHeader: boolean }>({ inHeader: false });
|
const HeaderContext = React.createContext<{ inHeader: boolean }>({ inHeader: false });
|
||||||
|
|
||||||
const popoverStyle = css`
|
const popoverStyle = css`
|
||||||
.ant-popover-inner {
|
.ant-popover-inner {
|
||||||
@ -495,9 +496,38 @@ const collapsedButtonRender = (collapsed, dom) => {
|
|||||||
return <CollapsedButton collapsed={collapsed}>{dom}</CollapsedButton>;
|
return <CollapsedButton collapsed={collapsed}>{dom}</CollapsedButton>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 这个问题源自 antd 的一个 bug,等 antd 修复了这个问题后,可以删除这个样式。
|
||||||
|
* - issue: https://github.com/ant-design/pro-components/issues/8593
|
||||||
|
* - issue: https://github.com/ant-design/pro-components/issues/8522
|
||||||
|
* - issue: https://github.com/ant-design/pro-components/issues/8432
|
||||||
|
*/
|
||||||
|
const useHeaderStyle = createStyles(({ token }: any) => {
|
||||||
|
return {
|
||||||
|
headerPopup: {
|
||||||
|
'&.ant-menu-submenu-popup>.ant-menu': {
|
||||||
|
backgroundColor: `${token.colorBgHeader}`,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
headerMenuActive: {
|
||||||
|
'& .ant-menu-submenu-selected>.ant-menu-submenu-title': {
|
||||||
|
color: token.colorTextHeaderMenuActive,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
});
|
||||||
const headerContextValue = { inHeader: true };
|
const headerContextValue = { inHeader: true };
|
||||||
|
const HeaderWrapper: FC = (props) => {
|
||||||
|
const { styles } = useHeaderStyle();
|
||||||
|
|
||||||
|
return (
|
||||||
|
<span className={styles.headerMenuActive}>
|
||||||
|
<HeaderContext.Provider value={headerContextValue}>{props.children}</HeaderContext.Provider>
|
||||||
|
</span>
|
||||||
|
);
|
||||||
|
};
|
||||||
const headerRender = (props: HeaderViewProps, defaultDom: React.ReactNode) => {
|
const headerRender = (props: HeaderViewProps, defaultDom: React.ReactNode) => {
|
||||||
return <headerContext.Provider value={headerContextValue}>{defaultDom}</headerContext.Provider>;
|
return <HeaderWrapper>{defaultDom}</HeaderWrapper>;
|
||||||
};
|
};
|
||||||
|
|
||||||
const IsMobileLayoutContext = React.createContext<{
|
const IsMobileLayoutContext = React.createContext<{
|
||||||
@ -531,6 +561,7 @@ export const InternalAdminLayout = () => {
|
|||||||
const doNotChangeCollapsedRef = useRef(false);
|
const doNotChangeCollapsedRef = useRef(false);
|
||||||
const { t } = useMenuTranslation();
|
const { t } = useMenuTranslation();
|
||||||
const designable = isMobileLayout ? false : _designable;
|
const designable = isMobileLayout ? false : _designable;
|
||||||
|
const { styles } = useHeaderStyle();
|
||||||
|
|
||||||
const route = useMemo(() => {
|
const route = useMemo(() => {
|
||||||
return {
|
return {
|
||||||
@ -544,7 +575,7 @@ export const InternalAdminLayout = () => {
|
|||||||
colorBgHeader: token.colorBgHeader,
|
colorBgHeader: token.colorBgHeader,
|
||||||
colorTextMenu: token.colorTextHeaderMenu,
|
colorTextMenu: token.colorTextHeaderMenu,
|
||||||
colorTextMenuSelected: token.colorTextHeaderMenuActive,
|
colorTextMenuSelected: token.colorTextHeaderMenuActive,
|
||||||
colorTextMenuActive: token.colorTextHeaderMenuActive,
|
colorTextMenuActive: token.colorTextHeaderMenuHover,
|
||||||
colorBgMenuItemHover: token.colorBgHeaderMenuHover,
|
colorBgMenuItemHover: token.colorBgHeaderMenuHover,
|
||||||
colorBgMenuItemSelected: token.colorBgHeaderMenuActive,
|
colorBgMenuItemSelected: token.colorBgHeaderMenuActive,
|
||||||
heightLayoutHeader: 46,
|
heightLayoutHeader: 46,
|
||||||
@ -591,6 +622,12 @@ export const InternalAdminLayout = () => {
|
|||||||
});
|
});
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
const menuProps = useMemo(() => {
|
||||||
|
return {
|
||||||
|
overflowedIndicatorPopupClassName: styles.headerPopup,
|
||||||
|
};
|
||||||
|
}, [styles.headerPopup]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<DndContext onDragEnd={onDragEnd}>
|
<DndContext onDragEnd={onDragEnd}>
|
||||||
<ProLayout
|
<ProLayout
|
||||||
@ -612,6 +649,7 @@ export const InternalAdminLayout = () => {
|
|||||||
onCollapse={onCollapse}
|
onCollapse={onCollapse}
|
||||||
collapsed={collapsed}
|
collapsed={collapsed}
|
||||||
onPageChange={onPageChange}
|
onPageChange={onPageChange}
|
||||||
|
menuProps={menuProps}
|
||||||
>
|
>
|
||||||
<RouteContext.Consumer>
|
<RouteContext.Consumer>
|
||||||
{(value: RouteContextType) => {
|
{(value: RouteContextType) => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user