Files
twenty/packages/twenty-front/src/modules/action-menu/hooks/useActionMenuEntries.ts
T
Raphaël Bosi 3761fbf86f Refactor action menu (#7586)
Introduces effects to set the actionMenuEntries
2024-10-11 15:25:35 +02:00

29 lines
881 B
TypeScript

import { actionMenuEntriesComponentState } from '@/action-menu/states/actionMenuEntriesComponentState';
import { ActionMenuEntry } from '@/action-menu/types/ActionMenuEntry';
import { useSetRecoilComponentStateV2 } from '@/ui/utilities/state/component-state/hooks/useSetRecoilComponentStateV2';
export const useActionMenuEntries = () => {
const setActionMenuEntries = useSetRecoilComponentStateV2(
actionMenuEntriesComponentState,
);
const addActionMenuEntry = (entry: ActionMenuEntry) => {
setActionMenuEntries(
(prevEntries) => new Map([...prevEntries, [entry.key, entry]]),
);
};
const removeActionMenuEntry = (key: string) => {
setActionMenuEntries((prevEntries) => {
const newMap = new Map(prevEntries);
newMap.delete(key);
return newMap;
});
};
return {
addActionMenuEntry,
removeActionMenuEntry,
};
};