Files
twenty/front/src/modules/companies/hooks/useCompanyTableContextMenuEntries.tsx
T
Lucas Bordeau 28ca9a9e49 Refactor/new menu item (#1448)
* wip

* finished

* Added disabled

* Fixed disabled

* Finished cleaning

* Minor fixes from merge

* Added docs

* Added PascalCase

* Fix from review

* Fixes from merge

* Fix lint

* Fixed storybook tests
2023-09-06 16:41:26 +02:00

49 lines
1.6 KiB
TypeScript

import { useSetRecoilState } from 'recoil';
import { useOpenCreateActivityDrawerForSelectedRowIds } from '@/activities/hooks/useOpenCreateActivityDrawerForSelectedRowIds';
import { ActivityTargetableEntityType } from '@/activities/types/ActivityTargetableEntity';
import { ContextMenuEntry } from '@/ui/context-menu/components/ContextMenuEntry';
import { contextMenuEntriesState } from '@/ui/context-menu/states/contextMenuEntriesState';
import { IconCheckbox, IconNotes, IconTrash } from '@/ui/icon';
import { ActivityType } from '~/generated/graphql';
import { useDeleteSelectedComapnies } from './useDeleteCompanies';
export function useCompanyTableContextMenuEntries() {
const setContextMenuEntries = useSetRecoilState(contextMenuEntriesState);
const openCreateActivityRightDrawer =
useOpenCreateActivityDrawerForSelectedRowIds();
async function handleButtonClick(type: ActivityType) {
openCreateActivityRightDrawer(type, ActivityTargetableEntityType.Company);
}
const deleteSelectedCompanies = useDeleteSelectedComapnies();
return {
setContextMenuEntries: () =>
setContextMenuEntries([
<ContextMenuEntry
label="Note"
Icon={IconNotes}
onClick={() => handleButtonClick(ActivityType.Note)}
key="note"
/>,
<ContextMenuEntry
label="Task"
Icon={IconCheckbox}
onClick={() => handleButtonClick(ActivityType.Task)}
key="task"
/>,
<ContextMenuEntry
label="Delete"
Icon={IconTrash}
accent="danger"
onClick={() => deleteSelectedCompanies()}
key="delete"
/>,
]),
};
}