Refactor action menu (#7586)

Introduces effects to set the actionMenuEntries
This commit is contained in:
Raphaël Bosi
2024-10-11 15:25:35 +02:00
committed by GitHub
parent 9b9b34f991
commit 3761fbf86f
26 changed files with 447 additions and 319 deletions

View File

@ -0,0 +1,22 @@
import { actionMenuEntriesComponentState } from '@/action-menu/states/actionMenuEntriesComponentState';
import { ActionMenuComponentInstanceContext } from '@/action-menu/states/contexts/ActionMenuComponentInstanceContext';
import { ActionMenuEntry } from '@/action-menu/types/ActionMenuEntry';
import { createComponentSelectorV2 } from '@/ui/utilities/state/component-state/utils/createComponentSelectorV2';
import { isDefined } from 'twenty-ui';
export const actionMenuEntriesComponentSelector = createComponentSelectorV2<
ActionMenuEntry[]
>({
key: 'actionMenuEntriesComponentSelector',
instanceContext: ActionMenuComponentInstanceContext,
get:
({ instanceId }) =>
({ get }) =>
Array.from(
get(
actionMenuEntriesComponentState.atomFamily({ instanceId }),
).values(),
)
.filter(isDefined)
.sort((a, b) => a.position - b.position),
});

View File

@ -3,9 +3,9 @@ import { createComponentStateV2 } from '@/ui/utilities/state/component-state/uti
import { ActionMenuEntry } from '../types/ActionMenuEntry';
export const actionMenuEntriesComponentState = createComponentStateV2<
ActionMenuEntry[]
Map<string, ActionMenuEntry>
>({
key: 'actionMenuEntriesComponentState',
defaultValue: [],
defaultValue: new Map(),
componentInstanceContext: ActionMenuComponentInstanceContext,
});