feat: merge records button in RecordDetailDuplicatesSection (#13537)

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>
This commit is contained in:
neo773
2025-08-01 20:07:20 +05:30
committed by GitHub
parent c44f610872
commit a5cb3168c1
10 changed files with 232 additions and 46 deletions
@@ -0,0 +1,43 @@
import { useNavigateCommandMenu } from '@/command-menu/hooks/useNavigateCommandMenu';
import { CommandMenuPages } from '@/command-menu/types/CommandMenuPages';
import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem';
import { useLoadSelectedRecordsInContextStore } from '@/object-record/hooks/useLoadSelectedRecordsInContextStore';
import { msg, t } from '@lingui/core/macro';
import { IconArrowMerge } from 'twenty-ui/display';
type UseOpenMergeRecordsPageInCommandMenuProps = {
objectNameSingular: string;
objectRecordIds: string[];
};
export const useOpenMergeRecordsPageInCommandMenu = ({
objectNameSingular,
objectRecordIds,
}: UseOpenMergeRecordsPageInCommandMenuProps) => {
const { objectMetadataItem } = useObjectMetadataItem({
objectNameSingular,
});
const { navigateCommandMenu } = useNavigateCommandMenu();
const { loadSelectedRecordsInContextStore } =
useLoadSelectedRecordsInContextStore({
objectNameSingular,
objectRecordIds,
objectMetadataItemId: objectMetadataItem.id,
});
const openMergeRecordsPageInCommandMenu = async () => {
await loadSelectedRecordsInContextStore();
navigateCommandMenu({
page: CommandMenuPages.MergeRecords,
pageTitle: t(msg`Merge records`),
pageIcon: IconArrowMerge,
});
};
return {
openMergeRecordsPageInCommandMenu,
};
};