From 50fad73034fe6494e6f21ebb4114dd1ebe42561e Mon Sep 17 00:00:00 2001 From: SheRunFeng <541899641@qq.com> Date: Wed, 8 Nov 2023 10:42:17 +0800 Subject: [PATCH] fix(): nav-menu & popover style --- bricks/basic/src/popover/index.tsx | 10 +++--- bricks/nav/src/nav-menu/index.tsx | 38 +++++++++++++++------ bricks/nav/src/nav-menu/nav-menu.shadow.css | 5 +++ 3 files changed, 39 insertions(+), 14 deletions(-) diff --git a/bricks/basic/src/popover/index.tsx b/bricks/basic/src/popover/index.tsx index dd0a0b416..69f5bd285 100644 --- a/bricks/basic/src/popover/index.tsx +++ b/bricks/basic/src/popover/index.tsx @@ -236,7 +236,7 @@ function PopoverComponent(props: PopoverComponentProps) { scale: 0.9, }, ], - { duration: 300, easing: "ease" } + { duration: 100, easing: "ease" } )); !visible && (popover.active = visible); @@ -268,9 +268,11 @@ function PopoverComponent(props: PopoverComponentProps) { () => !visible && handleVisibleChange(true), [visible, handleVisibleChange] ); - const handlePopoverClose = useCallback(() => { - handleVisibleChange(false); - }, [handleVisibleChange]); + + const handlePopoverClose = useCallback( + () => handleVisibleChange(false), + [handleVisibleChange] + ); const handleNotTrigger = (e: MouseEvent) => { e.stopPropagation(); diff --git a/bricks/nav/src/nav-menu/index.tsx b/bricks/nav/src/nav-menu/index.tsx index 2ed5b81bc..ad86a0638 100644 --- a/bricks/nav/src/nav-menu/index.tsx +++ b/bricks/nav/src/nav-menu/index.tsx @@ -1,4 +1,10 @@ -import React, { CSSProperties, useEffect, useRef, useState } from "react"; +import React, { + CSSProperties, + useEffect, + useMemo, + useRef, + useState, +} from "react"; import { createDecorators } from "@next-core/element"; import { getHistory } from "@next-core/runtime"; import { ReactNextElement, wrapBrick } from "@next-core/react-element"; @@ -67,6 +73,7 @@ interface MenuItemComProps { topData?: boolean; selectedKey?: string[]; showTooltip?: boolean; + overflow?: boolean; } interface SimpleMenuItemComProps extends MenuItemComProps { item: SidebarMenuSimpleItem; @@ -123,6 +130,7 @@ function SubMenuItemCom({ topData, showTooltip, selectedKey = [], + overflow, }: MenuGroupComProps) { return item.items?.length > 0 ? ( {renderSpanCom(item, !topData)} -
+
{item.items.map((innerItem) => ( ({ + type: "subMenu", + title: "···", + items: menu?.menuItems.slice( + overflowIndex, + menu.menuItems.length + ) as SidebarMenuItem[], + }), + [menu?.menuItems, overflowIndex] + ); + return (
{menu?.menuItems.map((item, index) => { @@ -465,16 +489,10 @@ function NavMenuComponent(props: NavMenuProps) { })}
diff --git a/bricks/nav/src/nav-menu/nav-menu.shadow.css b/bricks/nav/src/nav-menu/nav-menu.shadow.css index 191ec9322..6178ddf22 100644 --- a/bricks/nav/src/nav-menu/nav-menu.shadow.css +++ b/bricks/nav/src/nav-menu/nav-menu.shadow.css @@ -59,6 +59,11 @@ eo-link { overflow-y: auto; } +.overflow-menu-wrapper { + display: flex; + flex-direction: column; +} + .sub-menu-wrapper > eo-menu-item { display: block; width: 100%;