fix-dropdown-sort-icons (#2656)
This commit is contained in:
@ -2,6 +2,7 @@ import { useCallback, useState } from 'react';
|
|||||||
|
|
||||||
import { IconChevronDown } from '@/ui/display/icon';
|
import { IconChevronDown } from '@/ui/display/icon';
|
||||||
import { LightButton } from '@/ui/input/button/components/LightButton';
|
import { LightButton } from '@/ui/input/button/components/LightButton';
|
||||||
|
import { useLazyLoadIcons } from '@/ui/input/hooks/useLazyLoadIcons';
|
||||||
import { Dropdown } from '@/ui/layout/dropdown/components/Dropdown';
|
import { Dropdown } from '@/ui/layout/dropdown/components/Dropdown';
|
||||||
import { DropdownMenuHeader } from '@/ui/layout/dropdown/components/DropdownMenuHeader';
|
import { DropdownMenuHeader } from '@/ui/layout/dropdown/components/DropdownMenuHeader';
|
||||||
import { DropdownMenuItemsContainer } from '@/ui/layout/dropdown/components/DropdownMenuItemsContainer';
|
import { DropdownMenuItemsContainer } from '@/ui/layout/dropdown/components/DropdownMenuItemsContainer';
|
||||||
@ -60,6 +61,8 @@ export const ObjectSortDropdownButton = ({
|
|||||||
resetState();
|
resetState();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const { icons } = useLazyLoadIcons();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<DropdownScope dropdownScopeId={ObjectSortDropdownId}>
|
<DropdownScope dropdownScopeId={ObjectSortDropdownId}>
|
||||||
<Dropdown
|
<Dropdown
|
||||||
@ -97,15 +100,17 @@ export const ObjectSortDropdownButton = ({
|
|||||||
</DropdownMenuHeader>
|
</DropdownMenuHeader>
|
||||||
<DropdownMenuSeparator />
|
<DropdownMenuSeparator />
|
||||||
<DropdownMenuItemsContainer>
|
<DropdownMenuItemsContainer>
|
||||||
{availableSortDefinitions.map((availableSort, index) => (
|
{availableSortDefinitions.map(
|
||||||
<MenuItem
|
(availableSortDefinition, index) => (
|
||||||
testId={`select-sort-${index}`}
|
<MenuItem
|
||||||
key={index}
|
testId={`select-sort-${index}`}
|
||||||
onClick={() => handleAddSort(availableSort)}
|
key={index}
|
||||||
LeftIcon={availableSort.Icon}
|
onClick={() => handleAddSort(availableSortDefinition)}
|
||||||
text={availableSort.label}
|
LeftIcon={icons[availableSortDefinition.iconName]}
|
||||||
/>
|
text={availableSortDefinition.label}
|
||||||
))}
|
/>
|
||||||
|
),
|
||||||
|
)}
|
||||||
</DropdownMenuItemsContainer>
|
</DropdownMenuItemsContainer>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@ -1,10 +1,8 @@
|
|||||||
import { IconComponent } from '@/ui/display/icon/types/IconComponent';
|
|
||||||
|
|
||||||
import { SortDirection } from './SortDirection';
|
import { SortDirection } from './SortDirection';
|
||||||
|
|
||||||
export type SortDefinition = {
|
export type SortDefinition = {
|
||||||
fieldMetadataId: string;
|
fieldMetadataId: string;
|
||||||
label: string;
|
label: string;
|
||||||
Icon?: IconComponent;
|
iconName: string;
|
||||||
getOrderByTemplate?: (direction: SortDirection) => any[];
|
getOrderByTemplate?: (direction: SortDirection) => any[];
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,20 +1,19 @@
|
|||||||
import { IconCalendarEvent, IconCurrencyDollar } from '@/ui/display/icon/index';
|
|
||||||
import { SortDefinition } from '@/ui/object/object-sort-dropdown/types/SortDefinition';
|
import { SortDefinition } from '@/ui/object/object-sort-dropdown/types/SortDefinition';
|
||||||
|
|
||||||
export const opportunityBoardSortDefinitions: SortDefinition[] = [
|
export const opportunityBoardSortDefinitions: SortDefinition[] = [
|
||||||
{
|
{
|
||||||
fieldMetadataId: 'createdAt',
|
fieldMetadataId: 'createdAt',
|
||||||
label: 'Creation',
|
label: 'Creation',
|
||||||
Icon: IconCalendarEvent,
|
iconName: 'IconCalendarEvent',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
fieldMetadataId: 'amount',
|
fieldMetadataId: 'amount',
|
||||||
label: 'Amount',
|
label: 'Amount',
|
||||||
Icon: IconCurrencyDollar,
|
iconName: 'IconCurrencyDollar',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
fieldMetadataId: 'closeDate',
|
fieldMetadataId: 'closeDate',
|
||||||
label: 'Expected close date',
|
label: 'Expected close date',
|
||||||
Icon: IconCalendarEvent,
|
iconName: 'IconCalendarEvent',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|||||||
Reference in New Issue
Block a user