diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/types/FieldInputDraftValue.ts b/packages/twenty-front/src/modules/object-record/record-field/ui/types/FieldInputDraftValue.ts index f40baedab82..836bf5ec6fc 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/types/FieldInputDraftValue.ts +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/types/FieldInputDraftValue.ts @@ -55,8 +55,8 @@ export type FieldAddressDraftValue = { addressState: string | null; addressPostcode: string | null; addressCountry: string | null; - addressLat: number | null; - addressLng: number | null; + addressLat: number | string | null; + addressLng: number | string | null; }; export type FieldJsonDraftValue = string; export type FieldActorDraftValue = { diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/types/FieldMetadata.ts b/packages/twenty-front/src/modules/object-record/record-field/ui/types/FieldMetadata.ts index f12819776e6..2a4ad1107c1 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/types/FieldMetadata.ts +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/types/FieldMetadata.ts @@ -267,8 +267,8 @@ export type FieldAddressValue = { addressState: string | null; addressPostcode: string | null; addressCountry: string | null; - addressLat: number | null; - addressLng: number | null; + addressLat: number | string | null; + addressLng: number | string | null; }; export type FieldSelectValue = string | null; export type FieldMultiSelectValue = string[] | null; diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/types/guards/__tests__/isFieldAddressValue.test.ts b/packages/twenty-front/src/modules/object-record/record-field/ui/types/guards/__tests__/isFieldAddressValue.test.ts index 9e0e1e891ea..ddf1a81913e 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/types/guards/__tests__/isFieldAddressValue.test.ts +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/types/guards/__tests__/isFieldAddressValue.test.ts @@ -34,6 +34,21 @@ describe('isFieldAddressValue', () => { ).toBe(true); }); + it('should return true for address values with string lat/lng', () => { + expect( + isFieldAddressValue({ + addressStreet1: '', + addressStreet2: '', + addressCity: '', + addressState: '', + addressPostcode: '', + addressCountry: 'Türkiye', + addressLat: '38.963745', + addressLng: '35.243322', + }), + ).toBe(true); + }); + it('should return false for incomplete address', () => { expect(isFieldAddressValue({ addressStreet1: '123 Main St' })).toBe(false); }); diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/types/guards/isFieldAddressValue.ts b/packages/twenty-front/src/modules/object-record/record-field/ui/types/guards/isFieldAddressValue.ts index 157ba39f6c0..5b411e36c6e 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/types/guards/isFieldAddressValue.ts +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/types/guards/isFieldAddressValue.ts @@ -10,8 +10,8 @@ export const addressSchema = z.object({ addressState: z.string().nullable(), addressPostcode: z.string().nullable(), addressCountry: z.string().nullable(), - addressLat: z.number().nullable(), - addressLng: z.number().nullable(), + addressLat: z.union([z.number(), z.string()]).nullable(), + addressLng: z.union([z.number(), z.string()]).nullable(), }); export const isFieldAddressValue = (