From f82029200648ac41d0253e30c1a538b21ed263df Mon Sep 17 00:00:00 2001 From: Alexander Zinchuk Date: Sat, 25 Feb 2023 18:50:14 +0100 Subject: [PATCH] Message Context Menu: Fix invalid position (#2669) --- src/hooks/useContextMenuPosition.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/hooks/useContextMenuPosition.ts b/src/hooks/useContextMenuPosition.ts index 19e8540ed..356f4139b 100644 --- a/src/hooks/useContextMenuPosition.ts +++ b/src/hooks/useContextMenuPosition.ts @@ -103,11 +103,14 @@ export default function useContextMenuPosition( const addedYForPortalPositioning = (withPortal ? triggerRect.top : 0); const addedXForPortalPositioning = (withPortal ? triggerRect.left : 0); + const leftWithPossibleNegative = Math.min( + x - triggerRect.left, + rootRect.width - menuRect.width - MENU_POSITION_VISUAL_COMFORT_SPACE_PX, + ); const left = (horizontalPosition === 'left' - ? Math.max(MENU_POSITION_VISUAL_COMFORT_SPACE_PX, Math.min( - x - triggerRect.left, - rootRect.width - menuRect.width - MENU_POSITION_VISUAL_COMFORT_SPACE_PX, - )) + ? (withPortal + ? Math.max(MENU_POSITION_VISUAL_COMFORT_SPACE_PX, leftWithPossibleNegative) + : leftWithPossibleNegative) : (x - triggerRect.left)) + addedXForPortalPositioning; const top = y - triggerRect.top + addedYForPortalPositioning;