diff --git a/packages/twenty-front/src/modules/apollo/components/ApolloProvider.tsx b/packages/twenty-front/src/modules/apollo/components/ApolloProvider.tsx index 21a501528..c0d771c61 100644 --- a/packages/twenty-front/src/modules/apollo/components/ApolloProvider.tsx +++ b/packages/twenty-front/src/modules/apollo/components/ApolloProvider.tsx @@ -3,7 +3,9 @@ import { ApolloProvider as ApolloProviderBase } from '@apollo/client'; import { useApolloFactory } from '@/apollo/hooks/useApolloFactory'; export const ApolloProvider = ({ children }: React.PropsWithChildren) => { - const apolloClient = useApolloFactory(); + const apolloClient = useApolloFactory({ + connectToDevTools: true, + }); // This will attach the right apollo client to Apollo Dev Tools window.__APOLLO_CLIENT__ = apolloClient; diff --git a/packages/twenty-front/src/modules/object-metadata/components/ApolloMetadataClientProvider.tsx b/packages/twenty-front/src/modules/object-metadata/components/ApolloMetadataClientProvider.tsx index e68f7555b..737811846 100644 --- a/packages/twenty-front/src/modules/object-metadata/components/ApolloMetadataClientProvider.tsx +++ b/packages/twenty-front/src/modules/object-metadata/components/ApolloMetadataClientProvider.tsx @@ -10,6 +10,7 @@ export const ApolloMetadataClientProvider = ({ }) => { const apolloMetadataClient = useApolloFactory({ uri: `${REACT_APP_SERVER_BASE_URL}/metadata`, + connectToDevTools: false, }); return ( diff --git a/packages/twenty-front/src/modules/object-record/cache/utils/getRecordNodeFromRecord.ts b/packages/twenty-front/src/modules/object-record/cache/utils/getRecordNodeFromRecord.ts index 82399a003..73b093095 100644 --- a/packages/twenty-front/src/modules/object-record/cache/utils/getRecordNodeFromRecord.ts +++ b/packages/twenty-front/src/modules/object-record/cache/utils/getRecordNodeFromRecord.ts @@ -8,6 +8,7 @@ import { getRecordConnectionFromRecords } from '@/object-record/cache/utils/getR import { ObjectRecord } from '@/object-record/types/ObjectRecord'; import { FieldMetadataType } from '~/generated-metadata/graphql'; import { isDefined } from '~/utils/isDefined'; +import { lowerAndCapitalize } from '~/utils/string/lowerAndCapitalize'; export const getRecordNodeFromRecord = ({ objectMetadataItems, @@ -92,46 +93,61 @@ export const getRecordNodeFromRecord = ({ ]; } - if (field.type === 'RELATION') { - if ( - isUndefined( + switch (field.type) { + case FieldMetadataType.Relation: { + if ( + isUndefined( + field.relationDefinition?.targetObjectMetadata.nameSingular, + ) + ) { + return undefined; + } + + if (isNull(value)) { + return [fieldName, null]; + } + + if (isUndefined(value?.id)) { + return undefined; + } + + const typeName = getObjectTypename( field.relationDefinition?.targetObjectMetadata.nameSingular, - ) - ) { - return undefined; - } + ); - if (isNull(value)) { - return [fieldName, null]; - } + if (computeReferences) { + return [ + fieldName, + { + __ref: `${typeName}:${value.id}`, + }, + ]; + } - if (isUndefined(value?.id)) { - return undefined; - } - - const typeName = getObjectTypename( - field.relationDefinition?.targetObjectMetadata.nameSingular, - ); - - if (computeReferences) { return [ fieldName, { - __ref: `${typeName}:${value.id}`, + __typename: typeName, + ...value, }, ]; } - - return [ - fieldName, - { - __typename: typeName, - ...value, - }, - ]; + case FieldMetadataType.Link: + case FieldMetadataType.Address: + case FieldMetadataType.FullName: + case FieldMetadataType.Currency: { + return [ + fieldName, + { + ...value, + __typename: lowerAndCapitalize(field.type), + }, + ]; + } + default: { + return [fieldName, value]; + } } - - return [fieldName, value]; }) .filter(isDefined), ) as T; // Todo fix typing once we have investigated apollo edges / nodes removal diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/CurrencyFieldDisplay.tsx b/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/CurrencyFieldDisplay.tsx index 75e4030e5..5a17caefc 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/CurrencyFieldDisplay.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/CurrencyFieldDisplay.tsx @@ -5,11 +5,5 @@ import { useCurrencyField } from '../../hooks/useCurrencyField'; export const CurrencyFieldDisplay = () => { const { fieldValue } = useCurrencyField(); - return ( - - ); + return ; }; diff --git a/packages/twenty-front/src/modules/settings/data-model/components/SettingsObjectFieldCurrencyForm.tsx b/packages/twenty-front/src/modules/settings/data-model/components/SettingsObjectFieldCurrencyForm.tsx index f0afa115e..725b9a51e 100644 --- a/packages/twenty-front/src/modules/settings/data-model/components/SettingsObjectFieldCurrencyForm.tsx +++ b/packages/twenty-front/src/modules/settings/data-model/components/SettingsObjectFieldCurrencyForm.tsx @@ -23,7 +23,7 @@ export const SettingsObjectFieldCurrencyForm = ({