From 9cb3c7e67a2cb6fe927df312c8f907c83fa2ad67 Mon Sep 17 00:00:00 2001 From: Charles Bochet Date: Tue, 14 Apr 2026 13:19:24 +0200 Subject: [PATCH] fix(address): coerce lat/lng to numbers before persist validation Lat/lng values from the record store can arrive as strings, causing the Zod addressSchema validation to reject them on manual address edits. Use existing castAsNumberOrNull utility to ensure proper number types. Made-with: Cursor --- .../ui/meta-types/input/components/AddressFieldInput.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/input/components/AddressFieldInput.tsx b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/input/components/AddressFieldInput.tsx index 98b836895f0..625f0a54b41 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/input/components/AddressFieldInput.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/input/components/AddressFieldInput.tsx @@ -7,6 +7,7 @@ import { RecordFieldComponentInstanceContext } from '@/object-record/record-fiel import { FieldInputEventContext } from '@/object-record/record-field/ui/contexts/FieldInputEventContext'; import { useAvailableComponentInstanceIdOrThrow } from '@/ui/utilities/state/component-state/hooks/useAvailableComponentInstanceIdOrThrow'; import { useContext } from 'react'; +import { castAsNumberOrNull } from '~/utils/cast-as-number-or-null'; export const AddressFieldInput = () => { const { draftValue, setDraftValue, fieldDefinition } = useAddressField(); @@ -25,8 +26,8 @@ export const AddressFieldInput = () => { addressState: newAddress?.addressState ?? null, addressCountry: newAddress?.addressCountry ?? null, addressPostcode: newAddress?.addressPostcode ?? null, - addressLat: newAddress?.addressLat ?? null, - addressLng: newAddress?.addressLng ?? null, + addressLat: castAsNumberOrNull(newAddress?.addressLat), + addressLng: castAsNumberOrNull(newAddress?.addressLng), }; }; const settings = fieldDefinition.metadata.settings;