1584/fix/dropdown item width not correct (#1950)

* added full width to new button

* removed scrollbar width in dropdown item

* Fix dropdown width issue

* Fix lint

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
Abhishek Thory
2023-10-10 02:07:26 +05:30
committed by GitHub
parent e1c0cb7821
commit 29c013f826
24 changed files with 137 additions and 109 deletions

View File

@ -3,9 +3,9 @@ import { useRecoilState } from 'recoil';
import { currentPipelineState } from '@/pipeline/states/currentPipelineState'; import { currentPipelineState } from '@/pipeline/states/currentPipelineState';
import { DropdownMenuHeader } from '@/ui/dropdown/components/DropdownMenuHeader'; import { DropdownMenuHeader } from '@/ui/dropdown/components/DropdownMenuHeader';
import { DropdownMenuItemsContainer } from '@/ui/dropdown/components/DropdownMenuItemsContainer';
import { DropdownMenuSearchInput } from '@/ui/dropdown/components/DropdownMenuSearchInput'; import { DropdownMenuSearchInput } from '@/ui/dropdown/components/DropdownMenuSearchInput';
import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu'; import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu';
import { StyledDropdownMenuItemsContainer } from '@/ui/dropdown/components/StyledDropdownMenuItemsContainer';
import { StyledDropdownMenuSeparator } from '@/ui/dropdown/components/StyledDropdownMenuSeparator'; import { StyledDropdownMenuSeparator } from '@/ui/dropdown/components/StyledDropdownMenuSeparator';
import { IconChevronDown } from '@/ui/icon'; import { IconChevronDown } from '@/ui/icon';
import { SingleEntitySelectBase } from '@/ui/input/relation-picker/components/SingleEntitySelectBase'; import { SingleEntitySelectBase } from '@/ui/input/relation-picker/components/SingleEntitySelectBase';
@ -84,7 +84,7 @@ export const CompanyProgressPicker = ({
data-testid={`company-progress-dropdown-menu`} data-testid={`company-progress-dropdown-menu`}
> >
{isProgressSelectionUnfolded ? ( {isProgressSelectionUnfolded ? (
<StyledDropdownMenuItemsContainer> <DropdownMenuItemsContainer>
{currentPipelineStages.map((pipelineStage, index) => ( {currentPipelineStages.map((pipelineStage, index) => (
<MenuItem <MenuItem
key={pipelineStage.id} key={pipelineStage.id}
@ -95,7 +95,7 @@ export const CompanyProgressPicker = ({
text={pipelineStage.name} text={pipelineStage.name}
/> />
))} ))}
</StyledDropdownMenuItemsContainer> </DropdownMenuItemsContainer>
) : ( ) : (
<> <>
<DropdownMenuHeader <DropdownMenuHeader

View File

@ -5,8 +5,8 @@ import styled from '@emotion/styled';
import { autoUpdate, flip, offset, useFloating } from '@floating-ui/react'; import { autoUpdate, flip, offset, useFloating } from '@floating-ui/react';
import { FloatingIconButton } from '@/ui/button/components/FloatingIconButton'; import { FloatingIconButton } from '@/ui/button/components/FloatingIconButton';
import { DropdownMenuItemsContainer } from '@/ui/dropdown/components/DropdownMenuItemsContainer';
import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu'; import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu';
import { StyledDropdownMenuItemsContainer } from '@/ui/dropdown/components/StyledDropdownMenuItemsContainer';
import { IconDotsVertical, IconLinkOff, IconTrash } from '@/ui/icon'; import { IconDotsVertical, IconLinkOff, IconTrash } from '@/ui/icon';
import { MenuItem } from '@/ui/menu-item/components/MenuItem'; import { MenuItem } from '@/ui/menu-item/components/MenuItem';
import { useListenClickOutside } from '@/ui/utilities/pointer-event/hooks/useListenClickOutside'; import { useListenClickOutside } from '@/ui/utilities/pointer-event/hooks/useListenClickOutside';
@ -169,9 +169,7 @@ export const PeopleCard = ({
ref={refs.setFloating} ref={refs.setFloating}
style={floatingStyles} style={floatingStyles}
> >
<StyledDropdownMenuItemsContainer <DropdownMenuItemsContainer>
onClick={(e) => e.stopPropagation()}
>
<MenuItem <MenuItem
onClick={handleDetachPerson} onClick={handleDetachPerson}
LeftIcon={IconLinkOff} LeftIcon={IconLinkOff}
@ -183,7 +181,7 @@ export const PeopleCard = ({
text="Delete person" text="Delete person"
accent="danger" accent="danger"
/> />
</StyledDropdownMenuItemsContainer> </DropdownMenuItemsContainer>
</StyledDropdownMenu> </StyledDropdownMenu>
)} )}
</div> </div>

View File

@ -13,9 +13,9 @@ import debounce from 'lodash.debounce';
import { ReadonlyDeep } from 'type-fest'; import { ReadonlyDeep } from 'type-fest';
import { SelectOption } from '@/spreadsheet-import/types'; import { SelectOption } from '@/spreadsheet-import/types';
import { DropdownMenuItemsContainer } from '@/ui/dropdown/components/DropdownMenuItemsContainer';
import { DropdownMenuSearchInput } from '@/ui/dropdown/components/DropdownMenuSearchInput'; import { DropdownMenuSearchInput } from '@/ui/dropdown/components/DropdownMenuSearchInput';
import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu'; import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu';
import { StyledDropdownMenuItemsContainer } from '@/ui/dropdown/components/StyledDropdownMenuItemsContainer';
import { StyledDropdownMenuSeparator } from '@/ui/dropdown/components/StyledDropdownMenuSeparator'; import { StyledDropdownMenuSeparator } from '@/ui/dropdown/components/StyledDropdownMenuSeparator';
import { MenuItem } from '@/ui/menu-item/components/MenuItem'; import { MenuItem } from '@/ui/menu-item/components/MenuItem';
import { MenuItemSelect } from '@/ui/menu-item/components/MenuItemSelect'; import { MenuItemSelect } from '@/ui/menu-item/components/MenuItemSelect';
@ -127,7 +127,7 @@ export const MatchColumnSelect = ({
autoFocus autoFocus
/> />
<StyledDropdownMenuSeparator /> <StyledDropdownMenuSeparator />
<StyledDropdownMenuItemsContainer hasMaxHeight> <DropdownMenuItemsContainer hasMaxHeight>
{options?.map((option) => ( {options?.map((option) => (
<> <>
<MenuItemSelect <MenuItemSelect
@ -155,7 +155,7 @@ export const MatchColumnSelect = ({
</> </>
))} ))}
{options?.length === 0 && <MenuItem text="No result" />} {options?.length === 0 && <MenuItem text="No result" />}
</StyledDropdownMenuItemsContainer> </DropdownMenuItemsContainer>
</StyledDropdownMenu> </StyledDropdownMenu>
</StyledFloatingDropdown>, </StyledFloatingDropdown>,
document.body, document.body,

View File

@ -2,7 +2,7 @@ import { ChangeEvent, useCallback, useState } from 'react';
import styled from '@emotion/styled'; import styled from '@emotion/styled';
import { useRecoilState } from 'recoil'; import { useRecoilState } from 'recoil';
import { StyledDropdownMenuItemsContainer } from '@/ui/dropdown/components/StyledDropdownMenuItemsContainer'; import { DropdownMenuItemsContainer } from '@/ui/dropdown/components/DropdownMenuItemsContainer';
import { StyledDropdownMenuSeparator } from '@/ui/dropdown/components/StyledDropdownMenuSeparator'; import { StyledDropdownMenuSeparator } from '@/ui/dropdown/components/StyledDropdownMenuSeparator';
import { IconTrash } from '@/ui/icon'; import { IconTrash } from '@/ui/icon';
import { MenuItem } from '@/ui/menu-item/components/MenuItem'; import { MenuItem } from '@/ui/menu-item/components/MenuItem';
@ -114,7 +114,7 @@ export const BoardColumnEditTitleMenu = ({
}, [onClose, onDelete, setBoardColumns, stageId]); }, [onClose, onDelete, setBoardColumns, stageId]);
return ( return (
<StyledDropdownMenuItemsContainer> <DropdownMenuItemsContainer>
<StyledEditTitleContainer> <StyledEditTitleContainer>
<StyledEditModeInput <StyledEditModeInput
value={internalValue} value={internalValue}
@ -142,6 +142,6 @@ export const BoardColumnEditTitleMenu = ({
text="Delete" text="Delete"
accent="danger" accent="danger"
/> />
</StyledDropdownMenuItemsContainer> </DropdownMenuItemsContainer>
); );
}; };

View File

@ -4,8 +4,8 @@ import { Key } from 'ts-key-enum';
import { useCreateCompanyProgress } from '@/companies/hooks/useCreateCompanyProgress'; import { useCreateCompanyProgress } from '@/companies/hooks/useCreateCompanyProgress';
import { useFilteredSearchCompanyQuery } from '@/companies/hooks/useFilteredSearchCompanyQuery'; import { useFilteredSearchCompanyQuery } from '@/companies/hooks/useFilteredSearchCompanyQuery';
import { DropdownMenuItemsContainer } from '@/ui/dropdown/components/DropdownMenuItemsContainer';
import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu'; import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu';
import { StyledDropdownMenuItemsContainer } from '@/ui/dropdown/components/StyledDropdownMenuItemsContainer';
import { IconArrowLeft, IconArrowRight, IconPencil, IconPlus } from '@/ui/icon'; import { IconArrowLeft, IconArrowRight, IconPencil, IconPlus } from '@/ui/icon';
import { SingleEntitySelect } from '@/ui/input/relation-picker/components/SingleEntitySelect'; import { SingleEntitySelect } from '@/ui/input/relation-picker/components/SingleEntitySelect';
import { relationPickerSearchFilterScopedState } from '@/ui/input/relation-picker/states/relationPickerSearchFilterScopedState'; import { relationPickerSearchFilterScopedState } from '@/ui/input/relation-picker/states/relationPickerSearchFilterScopedState';
@ -135,7 +135,7 @@ export const BoardColumnMenu = ({
<StyledMenuContainer ref={boardColumnMenuRef}> <StyledMenuContainer ref={boardColumnMenuRef}>
<StyledDropdownMenu data-select-disable> <StyledDropdownMenu data-select-disable>
{currentMenu === 'actions' && ( {currentMenu === 'actions' && (
<StyledDropdownMenuItemsContainer> <DropdownMenuItemsContainer>
<MenuItem <MenuItem
onClick={() => setMenu('title')} onClick={() => setMenu('title')}
LeftIcon={IconPencil} LeftIcon={IconPencil}
@ -156,7 +156,7 @@ export const BoardColumnMenu = ({
LeftIcon={IconPlus} LeftIcon={IconPlus}
text="New opportunity" text="New opportunity"
/> />
</StyledDropdownMenuItemsContainer> </DropdownMenuItemsContainer>
)} )}
{currentMenu === 'title' && ( {currentMenu === 'title' && (
<BoardColumnEditTitleMenu <BoardColumnEditTitleMenu

View File

@ -12,9 +12,9 @@ import { BoardContext } from '@/companies/states/contexts/BoardContext';
import { DropdownMenuHeader } from '@/ui/dropdown/components/DropdownMenuHeader'; import { DropdownMenuHeader } from '@/ui/dropdown/components/DropdownMenuHeader';
import { DropdownMenuInput } from '@/ui/dropdown/components/DropdownMenuInput'; import { DropdownMenuInput } from '@/ui/dropdown/components/DropdownMenuInput';
import { DropdownMenuInputContainer } from '@/ui/dropdown/components/DropdownMenuInputContainer'; import { DropdownMenuInputContainer } from '@/ui/dropdown/components/DropdownMenuInputContainer';
import { DropdownMenuItemsContainer } from '@/ui/dropdown/components/DropdownMenuItemsContainer';
import { DropdownMenuSearchInput } from '@/ui/dropdown/components/DropdownMenuSearchInput'; import { DropdownMenuSearchInput } from '@/ui/dropdown/components/DropdownMenuSearchInput';
import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu'; import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu';
import { StyledDropdownMenuItemsContainer } from '@/ui/dropdown/components/StyledDropdownMenuItemsContainer';
import { StyledDropdownMenuSeparator } from '@/ui/dropdown/components/StyledDropdownMenuSeparator'; import { StyledDropdownMenuSeparator } from '@/ui/dropdown/components/StyledDropdownMenuSeparator';
import { useDropdown } from '@/ui/dropdown/hooks/useDropdown'; import { useDropdown } from '@/ui/dropdown/hooks/useDropdown';
import { import {
@ -191,7 +191,7 @@ export const BoardOptionsDropdownContent = ({
/> />
</DropdownMenuInputContainer> </DropdownMenuInputContainer>
<StyledDropdownMenuSeparator /> <StyledDropdownMenuSeparator />
<StyledDropdownMenuItemsContainer> <DropdownMenuItemsContainer>
<MenuItemNavigate <MenuItemNavigate
onClick={() => handleMenuNavigate('fields')} onClick={() => handleMenuNavigate('fields')}
LeftIcon={IconTag} LeftIcon={IconTag}
@ -202,7 +202,7 @@ export const BoardOptionsDropdownContent = ({
LeftIcon={IconLayoutKanban} LeftIcon={IconLayoutKanban}
text="Stages" text="Stages"
/> />
</StyledDropdownMenuItemsContainer> </DropdownMenuItemsContainer>
</> </>
)} )}
{currentMenu === 'stages' && ( {currentMenu === 'stages' && (
@ -211,13 +211,13 @@ export const BoardOptionsDropdownContent = ({
Stages Stages
</DropdownMenuHeader> </DropdownMenuHeader>
<StyledDropdownMenuSeparator /> <StyledDropdownMenuSeparator />
<StyledDropdownMenuItemsContainer> <DropdownMenuItemsContainer>
<MenuItem <MenuItem
onClick={() => setCurrentMenu('stage-creation')} onClick={() => setCurrentMenu('stage-creation')}
LeftIcon={IconPlus} LeftIcon={IconPlus}
text="Add stage" text="Add stage"
/> />
</StyledDropdownMenuItemsContainer> </DropdownMenuItemsContainer>
</> </>
)} )}
{currentMenu === 'stage-creation' && ( {currentMenu === 'stage-creation' && (

View File

@ -4,8 +4,8 @@ import { useRecoilValue, useSetRecoilState } from 'recoil';
import { actionBarOpenState } from '@/ui/action-bar/states/actionBarIsOpenState'; import { actionBarOpenState } from '@/ui/action-bar/states/actionBarIsOpenState';
import { contextMenuPositionState } from '@/ui/context-menu/states/contextMenuPositionState'; import { contextMenuPositionState } from '@/ui/context-menu/states/contextMenuPositionState';
import { DropdownMenuItemsContainer } from '@/ui/dropdown/components/DropdownMenuItemsContainer';
import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu'; import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu';
import { StyledDropdownMenuItemsContainer } from '@/ui/dropdown/components/StyledDropdownMenuItemsContainer';
import { useListenClickOutside } from '@/ui/utilities/pointer-event/hooks/useListenClickOutside'; import { useListenClickOutside } from '@/ui/utilities/pointer-event/hooks/useListenClickOutside';
import { contextMenuEntriesState } from '../states/contextMenuEntriesState'; import { contextMenuEntriesState } from '../states/contextMenuEntriesState';
@ -74,7 +74,7 @@ export const ContextMenu = ({ selectedIds }: ContextMenuProps) => {
position={contextMenuPosition} position={contextMenuPosition}
> >
<StyledDropdownMenu data-select-disable width={width}> <StyledDropdownMenu data-select-disable width={width}>
<StyledDropdownMenuItemsContainer> <DropdownMenuItemsContainer>
{contextMenuEntries.map((item) => ( {contextMenuEntries.map((item) => (
<ContextMenuItem <ContextMenuItem
Icon={item.Icon} Icon={item.Icon}
@ -84,7 +84,7 @@ export const ContextMenu = ({ selectedIds }: ContextMenuProps) => {
key={item.label} key={item.label}
/> />
))} ))}
</StyledDropdownMenuItemsContainer> </DropdownMenuItemsContainer>
</StyledDropdownMenu> </StyledDropdownMenu>
</StyledContainerContextMenu> </StyledContainerContextMenu>
); );

View File

@ -1,5 +1,5 @@
import { DropdownMenuItemsContainer } from '@/ui/dropdown/components/DropdownMenuItemsContainer';
import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu'; import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu';
import { StyledDropdownMenuItemsContainer } from '@/ui/dropdown/components/StyledDropdownMenuItemsContainer';
import { useDropdown } from '@/ui/dropdown/hooks/useDropdown'; import { useDropdown } from '@/ui/dropdown/hooks/useDropdown';
import { FieldMetadata } from '@/ui/field/types/FieldMetadata'; import { FieldMetadata } from '@/ui/field/types/FieldMetadata';
import { IconArrowLeft, IconArrowRight, IconEyeOff } from '@/ui/icon'; import { IconArrowLeft, IconArrowRight, IconEyeOff } from '@/ui/icon';
@ -53,7 +53,7 @@ export const DataTableColumnDropdownMenu = ({
<></> <></>
) : ( ) : (
<StyledDropdownMenu> <StyledDropdownMenu>
<StyledDropdownMenuItemsContainer> <DropdownMenuItemsContainer>
{!isFirstColumn && ( {!isFirstColumn && (
<MenuItem <MenuItem
LeftIcon={IconArrowLeft} LeftIcon={IconArrowLeft}
@ -73,7 +73,7 @@ export const DataTableColumnDropdownMenu = ({
onClick={handleColumnVisibility} onClick={handleColumnVisibility}
text="Hide" text="Hide"
/> />
</StyledDropdownMenuItemsContainer> </DropdownMenuItemsContainer>
</StyledDropdownMenu> </StyledDropdownMenu>
); );
}; };

View File

@ -1,8 +1,8 @@
import { ComponentProps, useCallback, useRef } from 'react'; import { ComponentProps, useCallback, useRef } from 'react';
import styled from '@emotion/styled'; import styled from '@emotion/styled';
import { DropdownMenuItemsContainer } from '@/ui/dropdown/components/DropdownMenuItemsContainer';
import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu'; import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu';
import { StyledDropdownMenuItemsContainer } from '@/ui/dropdown/components/StyledDropdownMenuItemsContainer';
import { FieldMetadata } from '@/ui/field/types/FieldMetadata'; import { FieldMetadata } from '@/ui/field/types/FieldMetadata';
import { IconPlus } from '@/ui/icon'; import { IconPlus } from '@/ui/icon';
import { MenuItem } from '@/ui/menu-item/components/MenuItem'; import { MenuItem } from '@/ui/menu-item/components/MenuItem';
@ -53,7 +53,7 @@ export const DataTableHeaderPlusButton = ({
return ( return (
// eslint-disable-next-line twenty/no-spread-props // eslint-disable-next-line twenty/no-spread-props
<StyledHeaderPlusButton {...props} ref={ref}> <StyledHeaderPlusButton {...props} ref={ref}>
<StyledDropdownMenuItemsContainer> <DropdownMenuItemsContainer>
{hiddenTableColumns.map((column) => ( {hiddenTableColumns.map((column) => (
<MenuItem <MenuItem
key={column.key} key={column.key}
@ -67,7 +67,7 @@ export const DataTableHeaderPlusButton = ({
text={column.name} text={column.name}
/> />
))} ))}
</StyledDropdownMenuItemsContainer> </DropdownMenuItemsContainer>
</StyledHeaderPlusButton> </StyledHeaderPlusButton>
); );
}; };

View File

@ -6,8 +6,8 @@ import { Key } from 'ts-key-enum';
import { DropdownMenuHeader } from '@/ui/dropdown/components/DropdownMenuHeader'; import { DropdownMenuHeader } from '@/ui/dropdown/components/DropdownMenuHeader';
import { DropdownMenuInput } from '@/ui/dropdown/components/DropdownMenuInput'; import { DropdownMenuInput } from '@/ui/dropdown/components/DropdownMenuInput';
import { DropdownMenuInputContainer } from '@/ui/dropdown/components/DropdownMenuInputContainer'; import { DropdownMenuInputContainer } from '@/ui/dropdown/components/DropdownMenuInputContainer';
import { DropdownMenuItemsContainer } from '@/ui/dropdown/components/DropdownMenuItemsContainer';
import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu'; import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu';
import { StyledDropdownMenuItemsContainer } from '@/ui/dropdown/components/StyledDropdownMenuItemsContainer';
import { StyledDropdownMenuSeparator } from '@/ui/dropdown/components/StyledDropdownMenuSeparator'; import { StyledDropdownMenuSeparator } from '@/ui/dropdown/components/StyledDropdownMenuSeparator';
import { useDropdown } from '@/ui/dropdown/hooks/useDropdown'; import { useDropdown } from '@/ui/dropdown/hooks/useDropdown';
import { IconChevronLeft, IconFileImport, IconTag } from '@/ui/icon'; import { IconChevronLeft, IconFileImport, IconTag } from '@/ui/icon';
@ -153,7 +153,7 @@ export const TableOptionsDropdownContent = () => {
/> />
</DropdownMenuInputContainer> </DropdownMenuInputContainer>
<StyledDropdownMenuSeparator /> <StyledDropdownMenuSeparator />
<StyledDropdownMenuItemsContainer> <DropdownMenuItemsContainer>
<MenuItem <MenuItem
onClick={() => handleSelectMenu('fields')} onClick={() => handleSelectMenu('fields')}
LeftIcon={IconTag} LeftIcon={IconTag}
@ -166,7 +166,7 @@ export const TableOptionsDropdownContent = () => {
text="Import" text="Import"
/> />
)} )}
</StyledDropdownMenuItemsContainer> </DropdownMenuItemsContainer>
</> </>
)} )}
{currentMenu === 'fields' && ( {currentMenu === 'fields' && (

View File

@ -0,0 +1,55 @@
import styled from '@emotion/styled';
import { ScrollWrapper } from '@/ui/utilities/scroll/components/ScrollWrapper';
const StyledDropdownMenuItemsExternalContainer = styled.div<{
hasMaxHeight?: boolean;
}>`
--padding: ${({ theme }) => theme.spacing(1)};
align-items: flex-start;
display: flex;
flex-direction: column;
gap: 2px;
height: 100%;
max-height: ${({ hasMaxHeight }) => (hasMaxHeight ? '180px' : 'none')};
overflow-y: auto;
padding: var(--padding);
padding-right: 0;
width: calc(100% - 1 * var(--padding));
`;
const StyledScrollWrapper = styled(ScrollWrapper)`
width: 100%;
`;
const StyledDropdownMenuItemsInternalContainer = styled.div`
align-items: flex-start;
display: flex;
flex-direction: column;
gap: 2px;
height: 100%;
width: 100%;
`;
export const DropdownMenuItemsContainer = ({
children,
hasMaxHeight,
}: {
children: React.ReactNode;
hasMaxHeight?: boolean;
}) => {
return (
<StyledDropdownMenuItemsExternalContainer hasMaxHeight={hasMaxHeight}>
<StyledScrollWrapper>
<StyledDropdownMenuItemsInternalContainer>
{children}
</StyledDropdownMenuItemsInternalContainer>
</StyledScrollWrapper>
</StyledDropdownMenuItemsExternalContainer>
);
};

View File

@ -1,20 +0,0 @@
import styled from '@emotion/styled';
export const StyledDropdownMenuItemsContainer = styled.div<{
hasMaxHeight?: boolean;
}>`
--padding: ${({ theme }) => theme.spacing(1)};
align-items: flex-start;
display: flex;
flex-direction: column;
gap: 2px;
height: 100%;
max-height: ${({ hasMaxHeight }) => (hasMaxHeight ? '180px' : 'none')};
overflow-y: auto;
padding: var(--padding);
padding-right: var(--padding);
width: calc(100% - 2 * var(--padding));
`;

View File

@ -12,9 +12,9 @@ import { ComponentDecorator } from '~/testing/decorators/ComponentDecorator';
import { DropdownMenuHeader } from '../DropdownMenuHeader'; import { DropdownMenuHeader } from '../DropdownMenuHeader';
import { DropdownMenuInput } from '../DropdownMenuInput'; import { DropdownMenuInput } from '../DropdownMenuInput';
import { DropdownMenuInputContainer } from '../DropdownMenuInputContainer'; import { DropdownMenuInputContainer } from '../DropdownMenuInputContainer';
import { DropdownMenuItemsContainer } from '../DropdownMenuItemsContainer';
import { DropdownMenuSearchInput } from '../DropdownMenuSearchInput'; import { DropdownMenuSearchInput } from '../DropdownMenuSearchInput';
import { StyledDropdownMenu } from '../StyledDropdownMenu'; import { StyledDropdownMenu } from '../StyledDropdownMenu';
import { StyledDropdownMenuItemsContainer } from '../StyledDropdownMenuItemsContainer';
import { StyledDropdownMenuSeparator } from '../StyledDropdownMenuSeparator'; import { StyledDropdownMenuSeparator } from '../StyledDropdownMenuSeparator';
import { StyledDropdownMenuSubheader } from '../StyledDropdownMenuSubheader'; import { StyledDropdownMenuSubheader } from '../StyledDropdownMenuSubheader';
@ -179,18 +179,18 @@ export const WithHeaders: Story = {
<DropdownMenuHeader>Header</DropdownMenuHeader> <DropdownMenuHeader>Header</DropdownMenuHeader>
<StyledDropdownMenuSeparator /> <StyledDropdownMenuSeparator />
<StyledDropdownMenuSubheader>Subheader 1</StyledDropdownMenuSubheader> <StyledDropdownMenuSubheader>Subheader 1</StyledDropdownMenuSubheader>
<StyledDropdownMenuItemsContainer> <DropdownMenuItemsContainer>
{mockSelectArray.slice(0, 3).map(({ name }) => ( {mockSelectArray.slice(0, 3).map(({ name }) => (
<MenuItem text={name} /> <MenuItem text={name} />
))} ))}
</StyledDropdownMenuItemsContainer> </DropdownMenuItemsContainer>
<StyledDropdownMenuSeparator /> <StyledDropdownMenuSeparator />
<StyledDropdownMenuSubheader>Subheader 2</StyledDropdownMenuSubheader> <StyledDropdownMenuSubheader>Subheader 2</StyledDropdownMenuSubheader>
<StyledDropdownMenuItemsContainer> <DropdownMenuItemsContainer>
{mockSelectArray.slice(3).map(({ name }) => ( {mockSelectArray.slice(3).map(({ name }) => (
<MenuItem text={name} /> <MenuItem text={name} />
))} ))}
</StyledDropdownMenuItemsContainer> </DropdownMenuItemsContainer>
</> </>
), ),
}, },
@ -203,9 +203,9 @@ export const SearchWithLoadingMenu: Story = {
<> <>
<DropdownMenuSearchInput value="query" autoFocus /> <DropdownMenuSearchInput value="query" autoFocus />
<StyledDropdownMenuSeparator /> <StyledDropdownMenuSeparator />
<StyledDropdownMenuItemsContainer hasMaxHeight> <DropdownMenuItemsContainer hasMaxHeight>
<DropdownMenuSkeletonItem /> <DropdownMenuSkeletonItem />
</StyledDropdownMenuItemsContainer> </DropdownMenuItemsContainer>
</> </>
), ),
}, },
@ -220,11 +220,11 @@ export const WithInput: Story = {
<DropdownMenuInput defaultValue="Lorem ipsum" autoFocus /> <DropdownMenuInput defaultValue="Lorem ipsum" autoFocus />
</DropdownMenuInputContainer> </DropdownMenuInputContainer>
<StyledDropdownMenuSeparator /> <StyledDropdownMenuSeparator />
<StyledDropdownMenuItemsContainer hasMaxHeight> <DropdownMenuItemsContainer hasMaxHeight>
{mockSelectArray.map(({ name }) => ( {mockSelectArray.map(({ name }) => (
<MenuItem text={name} /> <MenuItem text={name} />
))} ))}
</StyledDropdownMenuItemsContainer> </DropdownMenuItemsContainer>
</> </>
), ),
}, },
@ -234,9 +234,9 @@ export const SelectableMenuItemWithAvatar: Story = {
decorators: [WithContentBelowDecorator], decorators: [WithContentBelowDecorator],
args: { args: {
children: ( children: (
<StyledDropdownMenuItemsContainer hasMaxHeight> <DropdownMenuItemsContainer hasMaxHeight>
<FakeSelectableMenuItemList hasAvatar /> <FakeSelectableMenuItemList hasAvatar />
</StyledDropdownMenuItemsContainer> </DropdownMenuItemsContainer>
), ),
}, },
}; };
@ -245,9 +245,9 @@ export const CheckableMenuItemWithAvatar: Story = {
decorators: [WithContentBelowDecorator], decorators: [WithContentBelowDecorator],
args: { args: {
children: ( children: (
<StyledDropdownMenuItemsContainer hasMaxHeight> <DropdownMenuItemsContainer hasMaxHeight>
<FakeCheckableMenuItemList hasAvatar /> <FakeCheckableMenuItemList hasAvatar />
</StyledDropdownMenuItemsContainer> </DropdownMenuItemsContainer>
), ),
}, },
}; };

View File

@ -2,9 +2,9 @@ import { useEffect, useMemo, useState } from 'react';
import styled from '@emotion/styled'; import styled from '@emotion/styled';
import { LightIconButton } from '@/ui/button/components/LightIconButton'; import { LightIconButton } from '@/ui/button/components/LightIconButton';
import { DropdownMenuItemsContainer } from '@/ui/dropdown/components/DropdownMenuItemsContainer';
import { DropdownMenuSearchInput } from '@/ui/dropdown/components/DropdownMenuSearchInput'; import { DropdownMenuSearchInput } from '@/ui/dropdown/components/DropdownMenuSearchInput';
import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu'; import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu';
import { StyledDropdownMenuItemsContainer } from '@/ui/dropdown/components/StyledDropdownMenuItemsContainer';
import { StyledDropdownMenuSeparator } from '@/ui/dropdown/components/StyledDropdownMenuSeparator'; import { StyledDropdownMenuSeparator } from '@/ui/dropdown/components/StyledDropdownMenuSeparator';
import { IconComponent } from '@/ui/icon/types/IconComponent'; import { IconComponent } from '@/ui/icon/types/IconComponent';
@ -19,7 +19,7 @@ const StyledIconPickerDropdownMenu = styled(StyledDropdownMenu)`
width: 176px; width: 176px;
`; `;
const StyledMenuIconItemsContainer = styled(StyledDropdownMenuItemsContainer)` const StyledMenuIconItemsContainer = styled(DropdownMenuItemsContainer)`
flex-direction: row; flex-direction: row;
flex-wrap: wrap; flex-wrap: wrap;
height: auto; height: auto;

View File

@ -1,9 +1,9 @@
import { useRef } from 'react'; import { useRef } from 'react';
import debounce from 'lodash.debounce'; import debounce from 'lodash.debounce';
import { DropdownMenuItemsContainer } from '@/ui/dropdown/components/DropdownMenuItemsContainer';
import { DropdownMenuSearchInput } from '@/ui/dropdown/components/DropdownMenuSearchInput'; import { DropdownMenuSearchInput } from '@/ui/dropdown/components/DropdownMenuSearchInput';
import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu'; import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu';
import { StyledDropdownMenuItemsContainer } from '@/ui/dropdown/components/StyledDropdownMenuItemsContainer';
import { StyledDropdownMenuSeparator } from '@/ui/dropdown/components/StyledDropdownMenuSeparator'; import { StyledDropdownMenuSeparator } from '@/ui/dropdown/components/StyledDropdownMenuSeparator';
import { MenuItem } from '@/ui/menu-item/components/MenuItem'; import { MenuItem } from '@/ui/menu-item/components/MenuItem';
import { MenuItemMultiSelectAvatar } from '@/ui/menu-item/components/MenuItemMultiSelectAvatar'; import { MenuItemMultiSelectAvatar } from '@/ui/menu-item/components/MenuItemMultiSelectAvatar';
@ -79,7 +79,7 @@ export const MultipleEntitySelect = <
autoFocus autoFocus
/> />
<StyledDropdownMenuSeparator /> <StyledDropdownMenuSeparator />
<StyledDropdownMenuItemsContainer hasMaxHeight> <DropdownMenuItemsContainer hasMaxHeight>
{entitiesInDropdown?.map((entity) => ( {entitiesInDropdown?.map((entity) => (
<MenuItemMultiSelectAvatar <MenuItemMultiSelectAvatar
key={entity.id} key={entity.id}
@ -100,7 +100,7 @@ export const MultipleEntitySelect = <
/> />
))} ))}
{entitiesInDropdown?.length === 0 && <MenuItem text="No result" />} {entitiesInDropdown?.length === 0 && <MenuItem text="No result" />}
</StyledDropdownMenuItemsContainer> </DropdownMenuItemsContainer>
</StyledDropdownMenu> </StyledDropdownMenu>
); );
}; };

View File

@ -1,7 +1,7 @@
import { useRef } from 'react'; import { useRef } from 'react';
import { Key } from 'ts-key-enum'; import { Key } from 'ts-key-enum';
import { StyledDropdownMenuItemsContainer } from '@/ui/dropdown/components/StyledDropdownMenuItemsContainer'; import { DropdownMenuItemsContainer } from '@/ui/dropdown/components/DropdownMenuItemsContainer';
import { StyledDropdownMenuSeparator } from '@/ui/dropdown/components/StyledDropdownMenuSeparator'; import { StyledDropdownMenuSeparator } from '@/ui/dropdown/components/StyledDropdownMenuSeparator';
import { IconPlus } from '@/ui/icon'; import { IconPlus } from '@/ui/icon';
import { IconComponent } from '@/ui/icon/types/IconComponent'; import { IconComponent } from '@/ui/icon/types/IconComponent';
@ -102,8 +102,8 @@ export const SingleEntitySelectBase = <
); );
return ( return (
<> <div ref={containerRef}>
<StyledDropdownMenuItemsContainer ref={containerRef} hasMaxHeight> <DropdownMenuItemsContainer hasMaxHeight>
{loading ? ( {loading ? (
<DropdownMenuSkeletonItem /> <DropdownMenuSkeletonItem />
) : entitiesInDropdown.length === 0 && !isAllEntitySelectShown ? ( ) : entitiesInDropdown.length === 0 && !isAllEntitySelectShown ? (
@ -151,10 +151,10 @@ export const SingleEntitySelectBase = <
))} ))}
</> </>
)} )}
</StyledDropdownMenuItemsContainer> </DropdownMenuItemsContainer>
{showCreateButton && ( {showCreateButton && (
<> <>
<StyledDropdownMenuItemsContainer hasMaxHeight> <DropdownMenuItemsContainer hasMaxHeight>
<StyledDropdownMenuSeparator /> <StyledDropdownMenuSeparator />
<CreateNewButton <CreateNewButton
onClick={onCreate} onClick={onCreate}
@ -162,9 +162,9 @@ export const SingleEntitySelectBase = <
text="Add New" text="Add New"
hovered={preselectedOptionId === CreateButtonId} hovered={preselectedOptionId === CreateButtonId}
/> />
</StyledDropdownMenuItemsContainer> </DropdownMenuItemsContainer>
</> </>
)} )}
</> </div>
); );
}; };

View File

@ -4,8 +4,8 @@ import { useOpenCreateActivityDrawer } from '@/activities/hooks/useOpenCreateAct
import { ActivityTargetableEntity } from '@/activities/types/ActivityTargetableEntity'; import { ActivityTargetableEntity } from '@/activities/types/ActivityTargetableEntity';
import { PageHotkeyScope } from '@/types/PageHotkeyScope'; import { PageHotkeyScope } from '@/types/PageHotkeyScope';
import { IconButton } from '@/ui/button/components/IconButton'; import { IconButton } from '@/ui/button/components/IconButton';
import { DropdownMenuItemsContainer } from '@/ui/dropdown/components/DropdownMenuItemsContainer';
import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu'; import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu';
import { StyledDropdownMenuItemsContainer } from '@/ui/dropdown/components/StyledDropdownMenuItemsContainer';
import { useDropdown } from '@/ui/dropdown/hooks/useDropdown'; import { useDropdown } from '@/ui/dropdown/hooks/useDropdown';
import { IconCheckbox, IconNotes, IconPlus } from '@/ui/icon/index'; import { IconCheckbox, IconNotes, IconPlus } from '@/ui/icon/index';
import { MenuItem } from '@/ui/menu-item/components/MenuItem'; import { MenuItem } from '@/ui/menu-item/components/MenuItem';
@ -47,9 +47,7 @@ export const ShowPageAddButton = ({
} }
dropdownComponents={ dropdownComponents={
<StyledDropdownMenu> <StyledDropdownMenu>
<StyledDropdownMenuItemsContainer <DropdownMenuItemsContainer>
onClick={(e) => e.stopPropagation()}
>
<MenuItem <MenuItem
onClick={() => handleSelect(ActivityType.Note)} onClick={() => handleSelect(ActivityType.Note)}
accent="default" accent="default"
@ -62,7 +60,7 @@ export const ShowPageAddButton = ({
LeftIcon={IconCheckbox} LeftIcon={IconCheckbox}
text="Task" text="Task"
/> />
</StyledDropdownMenuItemsContainer> </DropdownMenuItemsContainer>
</StyledDropdownMenu> </StyledDropdownMenu>
} }
dropdownHotkeyScope={{ dropdownHotkeyScope={{

View File

@ -28,6 +28,7 @@ export const StyledMenuItemBase = styled.li<MenuItemBaseProps>`
height: calc(32px - 2 * var(--vertical-padding)); height: calc(32px - 2 * var(--vertical-padding));
justify-content: space-between; justify-content: space-between;
padding: var(--vertical-padding) var(--horizontal-padding);
${hoverBackground}; ${hoverBackground};
@ -55,9 +56,7 @@ export const StyledMenuItemBase = styled.li<MenuItemBaseProps>`
} }
}} }}
padding: var(--vertical-padding) var(--horizontal-padding);
position: relative; position: relative;
user-select: none; user-select: none;
width: calc(100% - 2 * var(--horizontal-padding)); width: calc(100% - 2 * var(--horizontal-padding));

View File

@ -1,4 +1,4 @@
import { StyledDropdownMenuItemsContainer } from '@/ui/dropdown/components/StyledDropdownMenuItemsContainer'; import { DropdownMenuItemsContainer } from '@/ui/dropdown/components/DropdownMenuItemsContainer';
import { RelationPickerHotkeyScope } from '@/ui/input/relation-picker/types/RelationPickerHotkeyScope'; import { RelationPickerHotkeyScope } from '@/ui/input/relation-picker/types/RelationPickerHotkeyScope';
import { MenuItem } from '@/ui/menu-item/components/MenuItem'; import { MenuItem } from '@/ui/menu-item/components/MenuItem';
import { useSetHotkeyScope } from '@/ui/utilities/hotkey/hooks/useSetHotkeyScope'; import { useSetHotkeyScope } from '@/ui/utilities/hotkey/hooks/useSetHotkeyScope';
@ -38,7 +38,7 @@ export const FilterDropdownFilterSelect = () => {
const setHotkeyScope = useSetHotkeyScope(); const setHotkeyScope = useSetHotkeyScope();
return ( return (
<StyledDropdownMenuItemsContainer> <DropdownMenuItemsContainer>
{availableFilters.map((availableFilter, index) => ( {availableFilters.map((availableFilter, index) => (
<MenuItem <MenuItem
key={`select-filter-${index}`} key={`select-filter-${index}`}
@ -60,6 +60,6 @@ export const FilterDropdownFilterSelect = () => {
text={availableFilter.label} text={availableFilter.label}
/> />
))} ))}
</StyledDropdownMenuItemsContainer> </DropdownMenuItemsContainer>
); );
}; };

View File

@ -1,4 +1,4 @@
import { StyledDropdownMenuItemsContainer } from '@/ui/dropdown/components/StyledDropdownMenuItemsContainer'; import { DropdownMenuItemsContainer } from '@/ui/dropdown/components/DropdownMenuItemsContainer';
import { MenuItem } from '@/ui/menu-item/components/MenuItem'; import { MenuItem } from '@/ui/menu-item/components/MenuItem';
import { useRecoilScopedState } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedState'; import { useRecoilScopedState } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedState';
@ -61,7 +61,7 @@ export const FilterDropdownOperandSelect = () => {
} }
return ( return (
<StyledDropdownMenuItemsContainer> <DropdownMenuItemsContainer>
{operandsForFilterType.map((filterOperand, index) => ( {operandsForFilterType.map((filterOperand, index) => (
<MenuItem <MenuItem
key={`select-filter-operand-${index}`} key={`select-filter-operand-${index}`}
@ -71,6 +71,6 @@ export const FilterDropdownOperandSelect = () => {
text={getOperandLabel(filterOperand)} text={getOperandLabel(filterOperand)}
/> />
))} ))}
</StyledDropdownMenuItemsContainer> </DropdownMenuItemsContainer>
); );
}; };

View File

@ -3,8 +3,8 @@ import { produce } from 'immer';
import { LightButton } from '@/ui/button/components/LightButton'; import { LightButton } from '@/ui/button/components/LightButton';
import { DropdownMenuHeader } from '@/ui/dropdown/components/DropdownMenuHeader'; import { DropdownMenuHeader } from '@/ui/dropdown/components/DropdownMenuHeader';
import { DropdownMenuItemsContainer } from '@/ui/dropdown/components/DropdownMenuItemsContainer';
import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu'; import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu';
import { StyledDropdownMenuItemsContainer } from '@/ui/dropdown/components/StyledDropdownMenuItemsContainer';
import { StyledDropdownMenuSeparator } from '@/ui/dropdown/components/StyledDropdownMenuSeparator'; import { StyledDropdownMenuSeparator } from '@/ui/dropdown/components/StyledDropdownMenuSeparator';
import { useDropdown } from '@/ui/dropdown/hooks/useDropdown'; import { useDropdown } from '@/ui/dropdown/hooks/useDropdown';
import { IconChevronDown } from '@/ui/icon'; import { IconChevronDown } from '@/ui/icon';
@ -104,7 +104,7 @@ export const SortDropdownButton = ({
dropdownComponents={ dropdownComponents={
<StyledDropdownMenu> <StyledDropdownMenu>
{isSortDirectionMenuUnfolded ? ( {isSortDirectionMenuUnfolded ? (
<StyledDropdownMenuItemsContainer> <DropdownMenuItemsContainer>
{SORT_DIRECTIONS.map((sortOrder, index) => ( {SORT_DIRECTIONS.map((sortOrder, index) => (
<MenuItem <MenuItem
key={index} key={index}
@ -115,7 +115,7 @@ export const SortDropdownButton = ({
text={sortOrder === 'asc' ? 'Ascending' : 'Descending'} text={sortOrder === 'asc' ? 'Ascending' : 'Descending'}
/> />
))} ))}
</StyledDropdownMenuItemsContainer> </DropdownMenuItemsContainer>
) : ( ) : (
<> <>
<DropdownMenuHeader <DropdownMenuHeader
@ -125,7 +125,7 @@ export const SortDropdownButton = ({
{selectedSortDirection === 'asc' ? 'Ascending' : 'Descending'} {selectedSortDirection === 'asc' ? 'Ascending' : 'Descending'}
</DropdownMenuHeader> </DropdownMenuHeader>
<StyledDropdownMenuSeparator /> <StyledDropdownMenuSeparator />
<StyledDropdownMenuItemsContainer> <DropdownMenuItemsContainer>
{availableSorts.map((availableSort, index) => ( {availableSorts.map((availableSort, index) => (
<MenuItem <MenuItem
testId={`select-sort-${index}`} testId={`select-sort-${index}`}
@ -135,7 +135,7 @@ export const SortDropdownButton = ({
text={availableSort.label} text={availableSort.label}
/> />
))} ))}
</StyledDropdownMenuItemsContainer> </DropdownMenuItemsContainer>
</> </>
)} )}
</StyledDropdownMenu> </StyledDropdownMenu>

View File

@ -6,7 +6,7 @@ import { Key } from 'ts-key-enum';
import { Button } from '@/ui/button/components/Button'; import { Button } from '@/ui/button/components/Button';
import { ButtonGroup } from '@/ui/button/components/ButtonGroup'; import { ButtonGroup } from '@/ui/button/components/ButtonGroup';
import { DropdownMenuContainer } from '@/ui/dropdown/components/DropdownMenuContainer'; import { DropdownMenuContainer } from '@/ui/dropdown/components/DropdownMenuContainer';
import { StyledDropdownMenuItemsContainer } from '@/ui/dropdown/components/StyledDropdownMenuItemsContainer'; import { DropdownMenuItemsContainer } from '@/ui/dropdown/components/DropdownMenuItemsContainer';
import { IconChevronDown, IconPlus } from '@/ui/icon'; import { IconChevronDown, IconPlus } from '@/ui/icon';
import { MenuItem } from '@/ui/menu-item/components/MenuItem'; import { MenuItem } from '@/ui/menu-item/components/MenuItem';
import { useScopedHotkeys } from '@/ui/utilities/hotkey/hooks/useScopedHotkeys'; import { useScopedHotkeys } from '@/ui/utilities/hotkey/hooks/useScopedHotkeys';
@ -127,13 +127,13 @@ export const UpdateViewButtonGroup = ({
{isDropdownOpen && ( {isDropdownOpen && (
<DropdownMenuContainer onClose={handleDropdownClose}> <DropdownMenuContainer onClose={handleDropdownClose}>
<StyledDropdownMenuItemsContainer> <DropdownMenuItemsContainer>
<MenuItem <MenuItem
onClick={handleCreateViewButtonClick} onClick={handleCreateViewButtonClick}
LeftIcon={IconPlus} LeftIcon={IconPlus}
text="Create view" text="Create view"
/> />
</StyledDropdownMenuItemsContainer> </DropdownMenuItemsContainer>
</DropdownMenuContainer> </DropdownMenuContainer>
)} )}
</StyledContainer> </StyledContainer>

View File

@ -8,7 +8,7 @@ import {
import { DraggableItem } from '@/ui/draggable-list/components/DraggableItem'; import { DraggableItem } from '@/ui/draggable-list/components/DraggableItem';
import { DraggableList } from '@/ui/draggable-list/components/DraggableList'; import { DraggableList } from '@/ui/draggable-list/components/DraggableList';
import { StyledDropdownMenuItemsContainer } from '@/ui/dropdown/components/StyledDropdownMenuItemsContainer'; import { DropdownMenuItemsContainer } from '@/ui/dropdown/components/DropdownMenuItemsContainer';
import { StyledDropdownMenuSubheader } from '@/ui/dropdown/components/StyledDropdownMenuSubheader'; import { StyledDropdownMenuSubheader } from '@/ui/dropdown/components/StyledDropdownMenuSubheader';
import { IconMinus, IconPlus } from '@/ui/icon'; import { IconMinus, IconPlus } from '@/ui/icon';
import { IconInfoCircle } from '@/ui/input/constants/icons'; import { IconInfoCircle } from '@/ui/input/constants/icons';
@ -82,7 +82,7 @@ export const ViewFieldsVisibilityDropdownSection = ({
return ( return (
<div ref={ref}> <div ref={ref}>
<StyledDropdownMenuSubheader>{title}</StyledDropdownMenuSubheader> <StyledDropdownMenuSubheader>{title}</StyledDropdownMenuSubheader>
<StyledDropdownMenuItemsContainer> <DropdownMenuItemsContainer>
{isDraggable ? ( {isDraggable ? (
<DraggableList <DraggableList
onDragEnd={handleOnDrag} onDragEnd={handleOnDrag}
@ -124,7 +124,7 @@ export const ViewFieldsVisibilityDropdownSection = ({
/> />
)) ))
)} )}
</StyledDropdownMenuItemsContainer> </DropdownMenuItemsContainer>
{isDefined(openToolTipIndex) && {isDefined(openToolTipIndex) &&
createPortal( createPortal(
<AppTooltip <AppTooltip

View File

@ -8,9 +8,9 @@ import {
useSetRecoilState, useSetRecoilState,
} from 'recoil'; } from 'recoil';
import { DropdownMenuItemsContainer } from '@/ui/dropdown/components/DropdownMenuItemsContainer';
import { StyledDropdownButtonContainer } from '@/ui/dropdown/components/StyledDropdownButtonContainer'; import { StyledDropdownButtonContainer } from '@/ui/dropdown/components/StyledDropdownButtonContainer';
import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu'; import { StyledDropdownMenu } from '@/ui/dropdown/components/StyledDropdownMenu';
import { StyledDropdownMenuItemsContainer } from '@/ui/dropdown/components/StyledDropdownMenuItemsContainer';
import { StyledDropdownMenuSeparator } from '@/ui/dropdown/components/StyledDropdownMenuSeparator'; import { StyledDropdownMenuSeparator } from '@/ui/dropdown/components/StyledDropdownMenuSeparator';
import { useDropdown } from '@/ui/dropdown/hooks/useDropdown'; import { useDropdown } from '@/ui/dropdown/hooks/useDropdown';
import { import {
@ -43,9 +43,7 @@ import { useRemoveView } from '../hooks/useRemoveView';
import { ViewBarDropdownButton } from './ViewBarDropdownButton'; import { ViewBarDropdownButton } from './ViewBarDropdownButton';
const StyledBoldDropdownMenuItemsContainer = styled( const StyledBoldDropdownMenuItemsContainer = styled(DropdownMenuItemsContainer)`
StyledDropdownMenuItemsContainer,
)`
font-weight: ${({ theme }) => theme.font.weight.regular}; font-weight: ${({ theme }) => theme.font.weight.regular};
`; `;
@ -177,7 +175,7 @@ export const ViewsDropdownButton = ({
} }
dropdownComponents={ dropdownComponents={
<StyledDropdownMenu width={200}> <StyledDropdownMenu width={200}>
<StyledDropdownMenuItemsContainer> <DropdownMenuItemsContainer>
{views.map((view) => ( {views.map((view) => (
<MenuItem <MenuItem
key={view.id} key={view.id}
@ -200,7 +198,7 @@ export const ViewsDropdownButton = ({
text={view.name} text={view.name}
/> />
))} ))}
</StyledDropdownMenuItemsContainer> </DropdownMenuItemsContainer>
<StyledDropdownMenuSeparator /> <StyledDropdownMenuSeparator />
<StyledBoldDropdownMenuItemsContainer> <StyledBoldDropdownMenuItemsContainer>
<MenuItem <MenuItem