Relations many in table view (#5842)
Closes #5924. Adding the "many" side of relations in the table view, and fixing some issues (glitch in Multi record select, cache update after update). --------- Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
This commit is contained in:
@ -4,6 +4,7 @@ import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
|
||||
import { getNodeTypename } from '@/object-record/cache/utils/getNodeTypename';
|
||||
import { getObjectTypename } from '@/object-record/cache/utils/getObjectTypename';
|
||||
import { getRecordConnectionFromRecords } from '@/object-record/cache/utils/getRecordConnectionFromRecords';
|
||||
import { getRefName } from '@/object-record/cache/utils/getRefName';
|
||||
import { RecordGqlNode } from '@/object-record/graphql/types/RecordGqlNode';
|
||||
import { ObjectRecord } from '@/object-record/types/ObjectRecord';
|
||||
import {
|
||||
@ -39,7 +40,7 @@ export const getRecordNodeFromRecord = <T extends ObjectRecord>({
|
||||
|
||||
if (!isRootLevel && computeReferences) {
|
||||
return {
|
||||
__ref: `${nodeTypeName}:${record.id}`,
|
||||
__ref: getRefName(objectMetadataItem.nameSingular, record.id),
|
||||
} as unknown as RecordGqlNode; // Fix typing: we want a Reference in computeReferences mode
|
||||
}
|
||||
|
||||
|
||||
7
packages/twenty-front/src/modules/object-record/cache/utils/getRefName.ts
vendored
Normal file
7
packages/twenty-front/src/modules/object-record/cache/utils/getRefName.ts
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
import { getNodeTypename } from '@/object-record/cache/utils/getNodeTypename';
|
||||
|
||||
export const getRefName = (objectNameSingular: string, id: string) => {
|
||||
const nodeTypeName = getNodeTypename(objectNameSingular);
|
||||
|
||||
return `${nodeTypeName}:${id}`;
|
||||
};
|
||||
@ -13,11 +13,13 @@ export const updateRecordFromCache = <T extends ObjectRecord>({
|
||||
objectMetadataItems,
|
||||
objectMetadataItem,
|
||||
cache,
|
||||
recordGqlFields = undefined,
|
||||
record,
|
||||
}: {
|
||||
objectMetadataItems: ObjectMetadataItem[];
|
||||
objectMetadataItem: ObjectMetadataItem;
|
||||
cache: ApolloCache<object>;
|
||||
recordGqlFields?: Record<string, any>;
|
||||
record: T;
|
||||
}) => {
|
||||
if (isUndefinedOrNull(objectMetadataItem)) {
|
||||
@ -32,6 +34,7 @@ export const updateRecordFromCache = <T extends ObjectRecord>({
|
||||
objectMetadataItems,
|
||||
objectMetadataItem,
|
||||
computeReferences: true,
|
||||
recordGqlFields,
|
||||
},
|
||||
)}
|
||||
`;
|
||||
|
||||
Reference in New Issue
Block a user