From 9dcc3ad6c183aa8bded4aff92b626eb635e51a03 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 20 Jul 2025 17:33:33 +0100 Subject: [PATCH] debugged modals --- .../[slug]/components/FormSchema.tsx | 4 +-- .../components/RemoteAssessmentModal.tsx | 36 +++++++++++++------ .../[slug]/components/UploadCsvModal.tsx | 9 ++--- 3 files changed, 29 insertions(+), 20 deletions(-) diff --git a/src/app/portfolio/[slug]/components/FormSchema.tsx b/src/app/portfolio/[slug]/components/FormSchema.tsx index 093e5d5..fbf3a3a 100644 --- a/src/app/portfolio/[slug]/components/FormSchema.tsx +++ b/src/app/portfolio/[slug]/components/FormSchema.tsx @@ -15,8 +15,8 @@ export const RemoteAssessmentFormSchema = baseFormSchema.extend({ housingType: z.string().min(1), addressLineOne: z.string().min(1), postcode: z.string().min(1), - uprn: z.number().min(1), - valuation: z.number().min(1), + uprn: z.number().min(1, "UPRN must be a valid number"), + valuation: z.number().min(1, "Valuation must be a valid number"), propertyType: z.string().nullable(), builtForm: z.string().nullable(), }); diff --git a/src/app/portfolio/[slug]/components/RemoteAssessmentModal.tsx b/src/app/portfolio/[slug]/components/RemoteAssessmentModal.tsx index 297bc66..e1b5702 100644 --- a/src/app/portfolio/[slug]/components/RemoteAssessmentModal.tsx +++ b/src/app/portfolio/[slug]/components/RemoteAssessmentModal.tsx @@ -264,10 +264,10 @@ function useCreateRemoteAssessment({ scenarioId, }: { portfolioId: string; - uprn: number | null; + uprn: number | undefined | null; addressLineOne: string; postcode: string; - valuation: string | number | null; + valuation: number | undefined | null; measures: (typeof measuresList)[number][]; propertyType?: string | null; builtForm?: string | null; @@ -282,6 +282,10 @@ function useCreateRemoteAssessment({ const session = useSession(); const userId = String(session.data?.user.dbId); + if (uprn === undefined || valuation === undefined) { + throw new Error("UPRN and valuation must be provided"); + } + const { assetListFileKey, valuationDataFileKey } = useMemo( () => generateS3Keys(userId, portfolioId), [userId, portfolioId] @@ -449,7 +453,7 @@ export default function RemoteAssessmentModal({ [scenarios] ); - const form = useForm({ + const form = useForm({ resolver: zodResolver(RemoteAssessmentFormSchema), mode: "onChange", defaultValues: { @@ -459,10 +463,10 @@ export default function RemoteAssessmentModal({ goalValue: "", addressLineOne: "", postcode: "", - uprn: null, - valuation: null, - propertyType: null as string | null, - builtForm: null as string | null, + uprn: undefined, // Must match expected type + valuation: undefined, // Must match expected type + propertyType: null, + builtForm: null, measures: measuresList, }, }); @@ -477,10 +481,10 @@ export default function RemoteAssessmentModal({ presignedUrlIsError, } = useCreateRemoteAssessment({ portfolioId, - uprn: form.watch("uprn"), + uprn: form.watch("uprn") ?? null, addressLineOne: form.watch("addressLineOne"), postcode: form.watch("postcode"), - valuation: form.watch("valuation"), + valuation: form.watch("valuation") ?? null, propertyType: form.watch("propertyType"), builtForm: form.watch("builtForm"), measures: measures, @@ -732,8 +736,13 @@ export default function RemoteAssessmentModal({ type="number" placeholder="Enter UPRN" {...field} + value={field.value ?? ""} onChange={(e) => - field.onChange(Number(e.target.value)) + field.onChange( + e.target.value === "" + ? undefined + : Number(e.target.value) + ) } className="border-brandbrown focus-visible:ring-brandbrown focus-visible:border-brandbrown" /> @@ -768,8 +777,13 @@ export default function RemoteAssessmentModal({ type="number" placeholder="Enter valuation" {...field} + value={field.value ?? ""} onChange={(e) => - field.onChange(Number(e.target.value)) + field.onChange( + e.target.value === "" + ? undefined + : Number(e.target.value) + ) } className="border-brandbrown focus-visible:ring-brandbrown focus-visible:border-brandbrown" /> diff --git a/src/app/portfolio/[slug]/components/UploadCsvModal.tsx b/src/app/portfolio/[slug]/components/UploadCsvModal.tsx index f0a921c..c52d282 100644 --- a/src/app/portfolio/[slug]/components/UploadCsvModal.tsx +++ b/src/app/portfolio/[slug]/components/UploadCsvModal.tsx @@ -269,6 +269,8 @@ export default function UploadCsvModal({ form.setValue("housingType", picked.housingType); form.setValue("goal", picked.goal); form.setValue("goalValue", picked.goalValue || ""); + form.setValue("ashpCop", picked.ashpCop || 2.8); // Default COP value + form.setValue("budget", picked.budget || null); } }; @@ -292,13 +294,6 @@ export default function UploadCsvModal({ form.reset(); }); - console.log("csvFile:", csvFile); - console.log("isValidating:", isValidating); - console.log("isValid:", isValid); - console.log("isSubmitting:", isSubmitting); - console.log("Raw form values", form.getValues()); - console.log("Zod parse result", uploadCsvSchema.safeParse(form.getValues())); - return (