From 9598a4dda2fecea6df4cb5699518b6c7a2331435 Mon Sep 17 00:00:00 2001 From: Charles Bochet Date: Thu, 5 Jun 2025 19:37:23 +0200 Subject: [PATCH] Fix infinite loop on table load (#12474) This was a tough one: - we should avoid updating lazy findManyRecords function with onCompleted callback, this is prone to infinite loops --- .../hooks/useLazyFindManyRecords.ts | 3 --- .../RecordTableNoRecordGroupBodyEffect.tsx | 17 ++++------------- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/packages/twenty-front/src/modules/object-record/hooks/useLazyFindManyRecords.ts b/packages/twenty-front/src/modules/object-record/hooks/useLazyFindManyRecords.ts index 335e2afef..202792e8b 100644 --- a/packages/twenty-front/src/modules/object-record/hooks/useLazyFindManyRecords.ts +++ b/packages/twenty-front/src/modules/object-record/hooks/useLazyFindManyRecords.ts @@ -94,8 +94,6 @@ export const useLazyFindManyRecords = ({ set(hasNextPageFamilyState(queryIdentifier), false); set(cursorFamilyState(queryIdentifier), ''); - onCompleted?.([]); - return { data: null, loading: false, @@ -124,7 +122,6 @@ export const useLazyFindManyRecords = ({ findManyRecords, objectMetadataItem.namePlural, queryIdentifier, - onCompleted, ], ); diff --git a/packages/twenty-front/src/modules/object-record/record-table/record-table-body/components/RecordTableNoRecordGroupBodyEffect.tsx b/packages/twenty-front/src/modules/object-record/record-table/record-table-body/components/RecordTableNoRecordGroupBodyEffect.tsx index 4b1dc7e94..97a2eb1a2 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/record-table-body/components/RecordTableNoRecordGroupBodyEffect.tsx +++ b/packages/twenty-front/src/modules/object-record/record-table/record-table-body/components/RecordTableNoRecordGroupBodyEffect.tsx @@ -58,8 +58,6 @@ export const RecordTableNoRecordGroupBodyEffect = () => { lastShowPageRecordIdState, ); - const [hasInitialized, setHasInitialized] = useState(false); - const { scrollToPosition } = useScrollToPosition(); useEffect(() => { @@ -142,21 +140,14 @@ export const RecordTableNoRecordGroupBodyEffect = () => { ]); useEffect(() => { + setIsRecordTableInitialLoading(false); + if (showAuthModal) { - setIsRecordTableInitialLoading(false); return; } - if (!hasInitialized) { - findManyRecords(); - setHasInitialized(true); - } - }, [ - findManyRecords, - hasInitialized, - setIsRecordTableInitialLoading, - showAuthModal, - ]); + findManyRecords(); + }, [findManyRecords, setIsRecordTableInitialLoading, showAuthModal]); return <>; };