From feb9ec6c32c22665851d6e470aa38637b0d3b32e Mon Sep 17 00:00:00 2001 From: Mikkel Laursen Date: Mon, 11 Dec 2023 10:10:35 -0500 Subject: [PATCH] fix(select): port fixed positioning fixes back from v6.0.0 This fixes an issue where the bottom of the listbox is below the viewport bottom. Also added the `positionOptions` prop to the Select to further customize the positioning. Closes #1461 --- .../__snapshots__/AutoComplete.tsx.snap | 8 +- .../__snapshots__/FixedDialog.tsx.snap | 1 + .../__snapshots__/MenuItemFileInput.tsx.snap | 4 +- .../__snapshots__/MenuItemTextField.tsx.snap | 2 +- packages/form/src/select/Select.tsx | 22 +- .../__tests__/__snapshots__/MenuBar.tsx.snap | 24 +- .../useFixedPositioning.tsx.snap | 12 +- .../__tests__/createHorizonalPosition.ts | 39 +- .../__tests__/createVerticalPosition.ts | 541 +++++++++++++++--- .../src/positioning/__tests__/getCoord.ts | 8 +- .../positioning/createHorizontalPosition.ts | 85 +-- .../src/positioning/createVerticalPosition.ts | 54 +- packages/utils/src/positioning/getCoord.ts | 18 +- .../utils/src/positioning/getFixedPosition.ts | 81 +-- .../src/positioning/getTransformOrigin.ts | 48 +- packages/utils/src/positioning/types.ts | 2 + 16 files changed, 704 insertions(+), 245 deletions(-) diff --git a/packages/autocomplete/src/__tests__/__snapshots__/AutoComplete.tsx.snap b/packages/autocomplete/src/__tests__/__snapshots__/AutoComplete.tsx.snap index 17dea6cd3d..53815f20e8 100644 --- a/packages/autocomplete/src/__tests__/__snapshots__/AutoComplete.tsx.snap +++ b/packages/autocomplete/src/__tests__/__snapshots__/AutoComplete.tsx.snap @@ -5,7 +5,7 @@ exports[`AutoComplete should be able to render content before and after the matc class="rmd-list rmd-listbox rmd-listbox--temporary rmd-transition--scale-y-enter rmd-transition--scale-y-enter-active" id="autocomplete-listbox" role="listbox" - style="left: 0px; top: 0px; width: 0px; position: fixed; transform-origin: 50% 0;" + style="position: fixed; transform-origin: 50% 0; left: 0px; top: 0px; width: 0px;" >
Before Results @@ -76,7 +76,7 @@ exports[`AutoComplete should be able to render content before and after the matc class="rmd-list rmd-listbox rmd-listbox--temporary rmd-transition--scale-y-enter rmd-transition--scale-y-enter-active" id="autocomplete-listbox" role="listbox" - style="left: 0px; top: 0px; width: 0px; position: fixed; transform-origin: 50% 0;" + style="position: fixed; transform-origin: 50% 0; left: 0px; top: 0px; width: 0px;" >
Before Results @@ -147,7 +147,7 @@ exports[`AutoComplete should be able to render content before and after the matc class="rmd-list rmd-listbox rmd-listbox--temporary rmd-transition--scale-y-enter rmd-transition--scale-y-enter-active" id="autocomplete-listbox" role="listbox" - style="left: 0px; top: 0px; width: 0px; position: fixed; transform-origin: 50% 0;" + style="position: fixed; transform-origin: 50% 0; left: 0px; top: 0px; width: 0px;" >
Before Results @@ -238,7 +238,7 @@ exports[`AutoComplete should handle a normal filter flow 1`] = ` class="rmd-list rmd-listbox rmd-listbox--temporary rmd-transition--scale-y-enter rmd-transition--scale-y-enter-active" id="autocomplete-listbox" role="listbox" - style="left: 0px; top: 0px; width: 0px; position: fixed; transform-origin: 50% 0;" + style="position: fixed; transform-origin: 50% 0; left: 0px; top: 0px; width: 0px;" >