[FEAT-2496] Add Customize fields button in new column menu (#2683)
* feat: add customize-fields btn in new column menu * fix: refactor onClick * Add separator --------- Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
@ -39,6 +39,7 @@ export const MenuItem = ({
|
|||||||
const showIconButtons = Array.isArray(iconButtons) && iconButtons.length > 0;
|
const showIconButtons = Array.isArray(iconButtons) && iconButtons.length > 0;
|
||||||
|
|
||||||
const handleMenuItemClick = (event: MouseEvent<HTMLLIElement>) => {
|
const handleMenuItemClick = (event: MouseEvent<HTMLLIElement>) => {
|
||||||
|
if (!onClick) return;
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,12 @@
|
|||||||
import { useCallback } from 'react';
|
import { useCallback } from 'react';
|
||||||
|
import { Link } from 'react-router-dom';
|
||||||
|
import styled from '@emotion/styled';
|
||||||
import { useRecoilValue } from 'recoil';
|
import { useRecoilValue } from 'recoil';
|
||||||
|
|
||||||
import { IconPlus } from '@/ui/display/icon';
|
import { IconPlus, IconSettings } from '@/ui/display/icon';
|
||||||
import { useLazyLoadIcons } from '@/ui/input/hooks/useLazyLoadIcons';
|
import { useLazyLoadIcons } from '@/ui/input/hooks/useLazyLoadIcons';
|
||||||
import { DropdownMenuItemsContainer } from '@/ui/layout/dropdown/components/DropdownMenuItemsContainer';
|
import { DropdownMenuItemsContainer } from '@/ui/layout/dropdown/components/DropdownMenuItemsContainer';
|
||||||
|
import { DropdownMenuSeparator } from '@/ui/layout/dropdown/components/DropdownMenuSeparator';
|
||||||
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';
|
||||||
|
|
||||||
@ -31,21 +34,34 @@ export const RecordTableHeaderPlusButtonContent = () => {
|
|||||||
[handleColumnVisibilityChange, closeDropdown],
|
[handleColumnVisibilityChange, closeDropdown],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const StyledMenuItemLink = styled(Link)`
|
||||||
|
text-decoration: none;
|
||||||
|
width: 100%;
|
||||||
|
`;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<DropdownMenuItemsContainer>
|
<>
|
||||||
{hiddenTableColumns.map((column) => (
|
<DropdownMenuItemsContainer>
|
||||||
<MenuItem
|
{hiddenTableColumns.map((column) => (
|
||||||
key={column.fieldMetadataId}
|
<MenuItem
|
||||||
iconButtons={[
|
key={column.fieldMetadataId}
|
||||||
{
|
iconButtons={[
|
||||||
Icon: IconPlus,
|
{
|
||||||
onClick: () => handleAddColumn(column),
|
Icon: IconPlus,
|
||||||
},
|
onClick: () => handleAddColumn(column),
|
||||||
]}
|
},
|
||||||
LeftIcon={icons[column.iconName]}
|
]}
|
||||||
text={column.label}
|
LeftIcon={icons[column.iconName]}
|
||||||
/>
|
text={column.label}
|
||||||
))}
|
/>
|
||||||
</DropdownMenuItemsContainer>
|
))}
|
||||||
|
</DropdownMenuItemsContainer>
|
||||||
|
<DropdownMenuSeparator />
|
||||||
|
<DropdownMenuItemsContainer>
|
||||||
|
<StyledMenuItemLink to="/settings/objects">
|
||||||
|
<MenuItem LeftIcon={IconSettings} text="Customize fields" />
|
||||||
|
</StyledMenuItemLink>
|
||||||
|
</DropdownMenuItemsContainer>
|
||||||
|
</>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user