Fix issue 2151: Dropdown menu of header table does not close after hide column (#2177)
* Fix issue 2151: Dropdown menu of header table does not close after hide column * Remove dropdown scope --------- Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
@ -32,6 +32,7 @@ export const ColumnHeadWithDropdown = ({
|
|||||||
primaryColumnKey={primaryColumnKey}
|
primaryColumnKey={primaryColumnKey}
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
|
dropdownOffset={{ x: -1 }}
|
||||||
dropdownPlacement="bottom-start"
|
dropdownPlacement="bottom-start"
|
||||||
dropdownHotkeyScope={{ scope: column.key + '-header' }}
|
dropdownHotkeyScope={{ scope: column.key + '-header' }}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@ -1,11 +1,9 @@
|
|||||||
import { FieldMetadata } from '@/ui/data/field/types/FieldMetadata';
|
import { FieldMetadata } from '@/ui/data/field/types/FieldMetadata';
|
||||||
import { IconArrowLeft, IconArrowRight, IconEyeOff } from '@/ui/display/icon';
|
import { IconArrowLeft, IconArrowRight, IconEyeOff } from '@/ui/display/icon';
|
||||||
import { DropdownMenu } from '@/ui/layout/dropdown/components/DropdownMenu';
|
|
||||||
import { DropdownMenuItemsContainer } from '@/ui/layout/dropdown/components/DropdownMenuItemsContainer';
|
import { DropdownMenuItemsContainer } from '@/ui/layout/dropdown/components/DropdownMenuItemsContainer';
|
||||||
import { useDropdown } from '@/ui/layout/dropdown/hooks/useDropdown';
|
import { useDropdown } from '@/ui/layout/dropdown/hooks/useDropdown';
|
||||||
import { MenuItem } from '@/ui/navigation/menu-item/components/MenuItem';
|
import { MenuItem } from '@/ui/navigation/menu-item/components/MenuItem';
|
||||||
|
|
||||||
import { ColumnHeadDropdownId } from '../constants/ColumnHeadDropdownId';
|
|
||||||
import { useTableColumns } from '../hooks/useTableColumns';
|
import { useTableColumns } from '../hooks/useTableColumns';
|
||||||
import { ColumnDefinition } from '../types/ColumnDefinition';
|
import { ColumnDefinition } from '../types/ColumnDefinition';
|
||||||
|
|
||||||
@ -25,9 +23,7 @@ export const DataTableColumnDropdownMenu = ({
|
|||||||
const { handleColumnVisibilityChange, handleMoveTableColumn } =
|
const { handleColumnVisibilityChange, handleMoveTableColumn } =
|
||||||
useTableColumns();
|
useTableColumns();
|
||||||
|
|
||||||
const { closeDropdown } = useDropdown({
|
const { closeDropdown } = useDropdown();
|
||||||
dropdownScopeId: ColumnHeadDropdownId,
|
|
||||||
});
|
|
||||||
|
|
||||||
const handleColumnMoveLeft = () => {
|
const handleColumnMoveLeft = () => {
|
||||||
closeDropdown();
|
closeDropdown();
|
||||||
@ -46,34 +42,33 @@ export const DataTableColumnDropdownMenu = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handleColumnVisibility = () => {
|
const handleColumnVisibility = () => {
|
||||||
|
closeDropdown();
|
||||||
handleColumnVisibilityChange(column);
|
handleColumnVisibilityChange(column);
|
||||||
};
|
};
|
||||||
|
|
||||||
return column.key === primaryColumnKey ? (
|
return column.key === primaryColumnKey ? (
|
||||||
<></>
|
<></>
|
||||||
) : (
|
) : (
|
||||||
<DropdownMenu>
|
<DropdownMenuItemsContainer>
|
||||||
<DropdownMenuItemsContainer>
|
{!isFirstColumn && (
|
||||||
{!isFirstColumn && (
|
|
||||||
<MenuItem
|
|
||||||
LeftIcon={IconArrowLeft}
|
|
||||||
onClick={handleColumnMoveLeft}
|
|
||||||
text="Move left"
|
|
||||||
/>
|
|
||||||
)}
|
|
||||||
{!isLastColumn && (
|
|
||||||
<MenuItem
|
|
||||||
LeftIcon={IconArrowRight}
|
|
||||||
onClick={handleColumnMoveRight}
|
|
||||||
text="Move right"
|
|
||||||
/>
|
|
||||||
)}
|
|
||||||
<MenuItem
|
<MenuItem
|
||||||
LeftIcon={IconEyeOff}
|
LeftIcon={IconArrowLeft}
|
||||||
onClick={handleColumnVisibility}
|
onClick={handleColumnMoveLeft}
|
||||||
text="Hide"
|
text="Move left"
|
||||||
/>
|
/>
|
||||||
</DropdownMenuItemsContainer>
|
)}
|
||||||
</DropdownMenu>
|
{!isLastColumn && (
|
||||||
|
<MenuItem
|
||||||
|
LeftIcon={IconArrowRight}
|
||||||
|
onClick={handleColumnMoveRight}
|
||||||
|
text="Move right"
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
<MenuItem
|
||||||
|
LeftIcon={IconEyeOff}
|
||||||
|
onClick={handleColumnVisibility}
|
||||||
|
text="Hide"
|
||||||
|
/>
|
||||||
|
</DropdownMenuItemsContainer>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user