Fix drag and drop in dropdown (#16622)

## Bug description

Due to the dropdown using floating ui, there was an offset on the
draggable item when the drag and drop was implemented inside a
scrollable dropdown.

## Video QA

### Before


https://github.com/user-attachments/assets/fe4b4c36-39ae-4d26-9e19-85d5ffd23b30


### After


https://github.com/user-attachments/assets/1f00b9b0-c231-49cb-a232-75ca42a98e8c
This commit is contained in:
Raphaël Bosi
2025-12-17 14:41:37 +01:00
committed by GitHub
parent 967298fe09
commit ca976afa10
5 changed files with 52 additions and 16 deletions
@@ -10,6 +10,7 @@ import { visibleRecordFieldsComponentSelector } from '@/object-record/record-fie
import { DraggableItem } from '@/ui/layout/draggable-list/components/DraggableItem';
import { DraggableList } from '@/ui/layout/draggable-list/components/DraggableList';
import { DropdownMenuItemsContainer } from '@/ui/layout/dropdown/components/DropdownMenuItemsContainer';
import { dropdownYPositionComponentState } from '@/ui/layout/dropdown/states/internal/dropdownYPositionComponentState';
import { useRecoilComponentValue } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValue';
import { ViewType } from '@/views/types/ViewType';
import { useContext } from 'react';
@@ -76,6 +77,10 @@ export const ViewFieldsVisibleDropdownSection = () => {
)
.toSorted(sortByProperty('position'));
const dropdownYPosition = useRecoilComponentValue(
dropdownYPositionComponentState,
);
return (
<>
<DropdownMenuItemsContainer>
@@ -107,6 +112,8 @@ export const ViewFieldsVisibleDropdownSection = () => {
key={recordField.fieldMetadataItemId}
draggableId={recordField.fieldMetadataItemId}
index={fieldIndex + 1}
isInsideScrollableContainer
containerOffsetY={dropdownYPosition}
itemComponent={
<MenuItemDraggable
key={recordField.fieldMetadataItemId}