From dfa73a5c467d6ddda6fa1b5e91aecdeb659b3ca4 Mon Sep 17 00:00:00 2001 From: mkljczk Date: Tue, 7 Jan 2025 20:00:35 +0100 Subject: [PATCH] pl-fe: optimizations Signed-off-by: mkljczk --- .../components/dropdown-menu/dropdown-menu.tsx | 4 ++-- .../emoji-picker-dropdown-container.tsx | 18 ++++++++++-------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/packages/pl-fe/src/components/dropdown-menu/dropdown-menu.tsx b/packages/pl-fe/src/components/dropdown-menu/dropdown-menu.tsx index 0676b5ee3..3b21ea994 100644 --- a/packages/pl-fe/src/components/dropdown-menu/dropdown-menu.tsx +++ b/packages/pl-fe/src/components/dropdown-menu/dropdown-menu.tsx @@ -317,7 +317,7 @@ const DropdownMenu = (props: IDropdownMenu) => { onKeyPress: handleKeyPress, ref: refs.setReference, }); - }, [children]); + }, [children, !!items?.length, component]); if (items?.length === 0 && !component) { return null; @@ -343,7 +343,7 @@ const DropdownMenu = (props: IDropdownMenu) => { return ( <> - {children ? clonedChildren : ( + {clonedChildren || ( = ({ } }; + const clonedChildren = useMemo(() => children ? ( + React.cloneElement(children, { + onClick: handleClick, + onKeyDown: handleKeyDown, + ref: refs.setReference, + }) + ) : null, [children]); + return (
- {children ? ( - React.cloneElement(children, { - onClick: handleClick, - onKeyDown: handleKeyDown, - ref: refs.setReference, - }) - ) : ( + {clonedChildren || (