From df531a64d924934fffe224e4b0e986ccdb409412 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 5 Jan 2026 19:35:15 +0000 Subject: [PATCH] added enforce fabric first --- src/app/portfolio/[slug]/(portfolio)/page.tsx | 1 + .../[slug]/components/FormSchema.tsx | 1 + .../[slug]/components/UploadCsvModal.tsx | 37 +++++++++++++++++++ 3 files changed, 39 insertions(+) diff --git a/src/app/portfolio/[slug]/(portfolio)/page.tsx b/src/app/portfolio/[slug]/(portfolio)/page.tsx index 4d5d754..ce991e5 100644 --- a/src/app/portfolio/[slug]/(portfolio)/page.tsx +++ b/src/app/portfolio/[slug]/(portfolio)/page.tsx @@ -4,6 +4,7 @@ import DataTable from "@/app/portfolio/[slug]/components/propertyTable"; import { columns } from "@/app/portfolio/[slug]/components/propertyTableColumns"; import { PropertyWithRelations } from "@/app/db/schema/property"; import SummaryBox from "@/app/components/portfolio/SummaryBox"; +import { Component } from "lucide-react"; // We enfore caching of data for 60 seconds export const revalidate = 60; diff --git a/src/app/portfolio/[slug]/components/FormSchema.tsx b/src/app/portfolio/[slug]/components/FormSchema.tsx index 197215c..bd6d9fd 100644 --- a/src/app/portfolio/[slug]/components/FormSchema.tsx +++ b/src/app/portfolio/[slug]/components/FormSchema.tsx @@ -58,6 +58,7 @@ export const uploadCsvSchema = baseFormSchema.extend({ }, z.union([z.number(), z.null()]).optional() ), + enforce_fabric_first: z.boolean().default(false), }); export type UploadCsvFormValues = z.infer; diff --git a/src/app/portfolio/[slug]/components/UploadCsvModal.tsx b/src/app/portfolio/[slug]/components/UploadCsvModal.tsx index b5093ff..999b2af 100644 --- a/src/app/portfolio/[slug]/components/UploadCsvModal.tsx +++ b/src/app/portfolio/[slug]/components/UploadCsvModal.tsx @@ -8,6 +8,7 @@ import { Transition, TransitionChild, } from "@headlessui/react"; +import { Checkbox } from "@/app/shadcn_components/ui/checkbox"; import { Fragment, useMemo, useState } from "react"; import { useMutation } from "@tanstack/react-query"; @@ -250,6 +251,7 @@ export function useUploadCsvPlan({ onSuccessRedirect, fileType, fileFormat, + enforceFabricFirst, }: { file: File; portfolioId: string; @@ -266,6 +268,7 @@ export function useUploadCsvPlan({ onSuccessRedirect: (path: string) => void; fileType: "csv" | "xlsx"; fileFormat: "domna_asset_list" | null; + enforceFabricFirst: boolean; }) { const session = useSession(); const userId = String(session.data?.user.dbId); @@ -308,6 +311,7 @@ export function useUploadCsvPlan({ ashp_cop: Number(ashpCop), file_type: fileType, // Pass the file type for backend processing file_format: fileFormat, + enforce_fabric_first: enforceFabricFirst, }; const triggerRes = await fetch("/api/plan/trigger", { @@ -421,6 +425,7 @@ export default function UploadCsvModal({ selectedSheet, sheetCount: sheetCounts[selectedSheet] || 0, onSuccessRedirect: (path) => router.push(path), + enforceFabricFirst: form.watch("enforce_fabric_first"), }); const onSubmit = form.handleSubmit(async () => { @@ -733,6 +738,38 @@ export default function UploadCsvModal({ + {/*enforceFabricFirst checkbox */} + ( + +
+ + + + +
+
+ )} + /> +