diff --git a/src/common/validation.tsx b/src/common/validation.tsx index 1c6343f6069..a8bce0bcfbe 100644 --- a/src/common/validation.tsx +++ b/src/common/validation.tsx @@ -6,11 +6,11 @@ export const phonePreg = (phone: string) => { const valueIsBetween = (val: number, a: number, b: number) => a <= val && val <= b; -export const validateLatitude = (latitude: string) => { +export const validateLatitude = (latitude: number) => { return valueIsBetween(Number(latitude), -90, 90); }; -export const validateLongitude = (longitude: string) => { +export const validateLongitude = (longitude: number) => { return valueIsBetween(Number(longitude), -180, 180); }; diff --git a/src/components/Facility/FacilityForm.tsx b/src/components/Facility/FacilityForm.tsx index 4d5250804c9..711deb881b1 100644 --- a/src/components/Facility/FacilityForm.tsx +++ b/src/components/Facility/FacilityForm.tsx @@ -75,11 +75,11 @@ export default function FacilityForm(props: FacilityProps) { .string() .regex(/^\+91[0-9]{10}$/, t("phone_number_validation")), latitude: z - .string() + .number() .optional() .refine((val) => !val || validateLatitude(val), t("invalid_latitude")), longitude: z - .string() + .number() .optional() .refine((val) => !val || validateLongitude(val), t("invalid_longitude")), is_public: z.boolean().default(false), @@ -98,8 +98,8 @@ export default function FacilityForm(props: FacilityProps) { geo_organization: "", address: "", phone_number: "+91", - latitude: "", - longitude: "", + latitude: undefined, + longitude: undefined, is_public: false, }, }); @@ -163,8 +163,8 @@ export default function FacilityForm(props: FacilityProps) { setIsGettingLocation(true); navigator.geolocation.getCurrentPosition( (position) => { - form.setValue("latitude", position.coords.latitude.toString()); - form.setValue("longitude", position.coords.longitude.toString()); + form.setValue("latitude", position.coords.latitude); + form.setValue("longitude", position.coords.longitude); setIsGettingLocation(false); toast.success(t("location_updated_successfully")); }, @@ -227,8 +227,8 @@ export default function FacilityForm(props: FacilityProps) { )?.id, address: facilityData.address, phone_number: facilityData.phone_number, - latitude: facilityData.latitude?.toString() || "", - longitude: facilityData.longitude?.toString() || "", + latitude: facilityData.latitude, + longitude: facilityData.longitude, is_public: facilityData.is_public, }); } @@ -468,6 +468,10 @@ export default function FacilityForm(props: FacilityProps) { { + form.setValue("latitude", Number(e.target.value)); + }} data-cy="facility-latitude" placeholder="Enter latitude" disabled={isGettingLocation} @@ -488,6 +492,10 @@ export default function FacilityForm(props: FacilityProps) { { + form.setValue("longitude", Number(e.target.value)); + }} data-cy="facility-longitude" placeholder="Enter longitude" disabled={isGettingLocation} diff --git a/src/components/Facility/models.tsx b/src/components/Facility/models.tsx index 33c8b2d5b94..478f7b170b7 100644 --- a/src/components/Facility/models.tsx +++ b/src/components/Facility/models.tsx @@ -18,8 +18,8 @@ export interface FacilityModel { created_date?: string; geo_organization?: string; pincode?: string; - latitude?: string; - longitude?: string; + latitude?: number; + longitude?: number; is_public?: boolean; }