debugged modals

This commit is contained in:
Khalim Conn-Kowlessar 2025-07-20 17:33:33 +01:00
parent 07b6fe08ea
commit 9dcc3ad6c1
3 changed files with 29 additions and 20 deletions

View file

@ -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(),
});

View file

@ -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<RemoteAssessmentFormValues>({
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"
/>

View file

@ -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 (
<Transition appear show={isOpen} as={Fragment}>
<Dialog