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;