Fixed Apollo cache bug (#16523)

Fixes https://github.com/twentyhq/twenty/issues/16520

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
Lucas Bordeau
2025-12-12 17:45:50 +01:00
committed by GitHub
parent f0af947331
commit ee47a773bd
22 changed files with 826 additions and 104 deletions
@@ -1,4 +1,4 @@
import { RecordGqlConnection } from '@/object-record/graphql/types/RecordGqlConnection';
import { RecordGqlConnectionEdgesRequired } from '@/object-record/graphql/types/RecordGqlConnectionEdgesRequired';
import { gql } from '@apollo/client';
import { peopleQueryResult } from '~/testing/mock-data/people';
@@ -36,7 +36,7 @@ export const query = gql`
export const mockPageSize = 2;
export const peopleMockWithIdsOnly: RecordGqlConnection = {
export const peopleMockWithIdsOnly: RecordGqlConnectionEdgesRequired = {
...peopleQueryResult.people,
edges: peopleQueryResult.people.edges.map((edge) => ({
...edge,
@@ -72,7 +72,7 @@ export const variablesThirdRequest = {
};
const paginateRequestResponse = (
response: RecordGqlConnection,
response: RecordGqlConnectionEdgesRequired,
start: number,
end: number,
hasNextPage: boolean,
@@ -86,7 +86,7 @@ const paginateRequestResponse = (
startCursor: response.edges[start].cursor,
endCursor: response.edges[end].cursor,
hasNextPage,
} satisfies RecordGqlConnection['pageInfo'],
} satisfies RecordGqlConnectionEdgesRequired['pageInfo'],
totalCount,
};
};
@@ -5,7 +5,7 @@ import { useApolloCoreClient } from '@/object-metadata/hooks/useApolloCoreClient
import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem';
import { type ObjectMetadataItemIdentifier } from '@/object-metadata/types/ObjectMetadataItemIdentifier';
import { getRecordsFromRecordConnection } from '@/object-record/cache/utils/getRecordsFromRecordConnection';
import { type RecordGqlConnection } from '@/object-record/graphql/types/RecordGqlConnection';
import { type RecordGqlConnectionEdgesRequired } from '@/object-record/graphql/types/RecordGqlConnectionEdgesRequired';
import { type RecordGqlOperationFindDuplicatesResult } from '@/object-record/graphql/types/RecordGqlOperationFindDuplicatesResults';
import { useFindDuplicateRecordsQuery } from '@/object-record/hooks/useFindDuplicatesRecordsQuery';
import { type ObjectRecord } from '@/object-record/types/ObjectRecord';
@@ -20,7 +20,7 @@ export const useFindDuplicateRecords = <T extends ObjectRecord = ObjectRecord>({
skip,
}: ObjectMetadataItemIdentifier & {
objectRecordIds: string[] | undefined;
onCompleted?: (data: RecordGqlConnection[]) => void;
onCompleted?: (data: RecordGqlConnectionEdgesRequired[]) => void;
skip?: boolean;
}) => {
const findDuplicateQueryStateIdentifier = objectNameSingular;
@@ -69,7 +69,7 @@ export const useFindDuplicateRecords = <T extends ObjectRecord = ObjectRecord>({
const results = useMemo(
() =>
objectResults?.map((result: RecordGqlConnection) => {
objectResults?.map((result: RecordGqlConnectionEdgesRequired) => {
return result
? (getRecordsFromRecordConnection({
recordConnection: result,