Refactor SingleRecordPicker to handle morphs (#14956)

## Scope

- Refactor SingleRecordPicker to handle morphItem and match Multiple one
- fix query generation to take morph into account


Left: 
- double check SingleRecordPicker in Workflows / Form
- Fix tests / stories
This commit is contained in:
Charles Bochet
2025-10-07 20:07:27 +02:00
committed by GitHub
parent 8829eb5a4a
commit 84f1559832
28 changed files with 460 additions and 585 deletions
@@ -6,7 +6,7 @@ import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadat
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
import { useCreateOneRecord } from '@/object-record/hooks/useCreateOneRecord';
import { useDeleteOneRecord } from '@/object-record/hooks/useDeleteOneRecord';
import { searchRecordStoreComponentFamilyState } from '@/object-record/record-picker/multiple-record-picker/states/searchRecordStoreComponentFamilyState';
import { searchRecordStoreFamilyState } from '@/object-record/record-picker/multiple-record-picker/states/searchRecordStoreComponentFamilyState';
import { type RecordPickerPickableMorphItem } from '@/object-record/record-picker/types/RecordPickerPickableMorphItem';
import { recordStoreFamilyState } from '@/object-record/record-store/states/recordStoreFamilyState';
import { useRecoilCallback, useSetRecoilState } from 'recoil';
@@ -58,7 +58,6 @@ export const useUpdateActivityTargetFromCell = ({
async ({
morphItem,
activityTargetWithTargetRecords,
recordPickerInstanceId,
}: UpdateActivityTargetFromCellProps) => {
const targetObjectName =
activityObjectNameSingular === CoreObjectNameSingular.Task
@@ -105,12 +104,7 @@ export const useUpdateActivityTargetFromCell = ({
}
} else {
const searchRecord = snapshot
.getLoadable(
searchRecordStoreComponentFamilyState.atomFamily({
instanceId: recordPickerInstanceId,
familyKey: morphItem.recordId,
}),
)
.getLoadable(searchRecordStoreFamilyState(morphItem.recordId))
.getValue();
if (!isDefined(searchRecord) || !isDefined(searchRecord?.record)) {