From 1f140e423707e9966254050e3234a65ee05977e9 Mon Sep 17 00:00:00 2001 From: Nathan Bierema Date: Sat, 7 May 2022 16:53:49 -0400 Subject: [PATCH] Fix view height used for menu positioning (#5177) * Fix view height used for menu positioning * Create friendly-icons-flow.md * Format * Reset yarn.lock --- .changeset/friendly-icons-flow.md | 5 +++++ packages/react-select/src/components/Menu.tsx | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 .changeset/friendly-icons-flow.md diff --git a/.changeset/friendly-icons-flow.md b/.changeset/friendly-icons-flow.md new file mode 100644 index 0000000000..148f7940ec --- /dev/null +++ b/.changeset/friendly-icons-flow.md @@ -0,0 +1,5 @@ +--- +'react-select': patch +--- + +Fix view height used for menu positioning to be the scroll parent instead of the window diff --git a/packages/react-select/src/components/Menu.tsx b/packages/react-select/src/components/Menu.tsx index f6846774ec..0a6c9db3d2 100644 --- a/packages/react-select/src/components/Menu.tsx +++ b/packages/react-select/src/components/Menu.tsx @@ -12,9 +12,10 @@ import { createPortal } from 'react-dom'; import { animatedScrollTo, getBoundingClientObj, - RectType, getScrollParent, getScrollTop, + normalizedHeight, + RectType, scrollTo, } from '../utils'; import { @@ -75,7 +76,9 @@ export function getMenuPlacement({ } = menuEl.getBoundingClientRect(); const { top: containerTop } = menuEl.offsetParent.getBoundingClientRect(); - const viewHeight = window.innerHeight; + const viewHeight = isFixedPosition + ? window.innerHeight + : normalizedHeight(scrollParent); const scrollTop = getScrollTop(scrollParent); const marginBottom = parseInt(getComputedStyle(menuEl).marginBottom, 10);