From 4c6e1024931e26cdd714f8c3061e92e090fef84e Mon Sep 17 00:00:00 2001 From: Thomas Trompette Date: Tue, 24 Mar 2026 15:05:22 +0100 Subject: [PATCH] Display found items after full items loaded (#18914) The performCombinedFindManyRecords call was previously fire-and-forget (.then()), meaning the loading state was set to false and the picker became interactive before the full records were written into the Apollo cache. Fixes https://github.com/twentyhq/twenty/issues/17669 Co-authored-by: Charles Bochet --- .../useMultipleRecordPickerPerformSearch.ts | 50 +++++++++---------- 1 file changed, 24 insertions(+), 26 deletions(-) diff --git a/packages/twenty-front/src/modules/object-record/record-picker/multiple-record-picker/hooks/useMultipleRecordPickerPerformSearch.ts b/packages/twenty-front/src/modules/object-record/record-picker/multiple-record-picker/hooks/useMultipleRecordPickerPerformSearch.ts index 6c531efad5..69c1c2a126 100644 --- a/packages/twenty-front/src/modules/object-record/record-picker/multiple-record-picker/hooks/useMultipleRecordPickerPerformSearch.ts +++ b/packages/twenty-front/src/modules/object-record/record-picker/multiple-record-picker/hooks/useMultipleRecordPickerPerformSearch.ts @@ -321,33 +321,31 @@ export const useMultipleRecordPickerPerformSearch = () => { }, })); - if (operationSignatures.length === 0) { - return; + if (operationSignatures.length > 0) { + const { result } = await performCombinedFindManyRecords({ + operationSignatures, + }); + + Object.values(result) + .flat() + .forEach((objectRecord) => { + const searchRecord = searchRecords.find( + ({ recordId }) => recordId === objectRecord.id, + ); + + if (!searchRecord) { + return; + } + + store.set( + searchRecordStoreFamilyState.atomFamily(objectRecord.id), + { + ...searchRecord, + record: objectRecord, + }, + ); + }); } - - performCombinedFindManyRecords({ operationSignatures }).then( - ({ result }) => { - Object.values(result) - .flat() - .forEach((objectRecord) => { - const searchRecord = searchRecords.find( - ({ recordId }) => recordId === objectRecord.id, - ); - - if (!searchRecord) { - return; - } - - store.set( - searchRecordStoreFamilyState.atomFamily(objectRecord.id), - { - ...searchRecord, - record: objectRecord, - }, - ); - }); - }, - ); } store.set(multipleRecordPickerPaginationState.atomFamily(atomFamilyKey), {