diff --git a/apps/dm_new/app/(landing)/reuse/apply/modal/SimilarCaseModal.tsx b/apps/dm_new/app/(landing)/reuse/apply/modal/SimilarCaseModal.tsx index c363d13ee..f997d88e1 100644 --- a/apps/dm_new/app/(landing)/reuse/apply/modal/SimilarCaseModal.tsx +++ b/apps/dm_new/app/(landing)/reuse/apply/modal/SimilarCaseModal.tsx @@ -79,12 +79,6 @@ export default function SimilarCaseModal({ }) { const titleId = useId(); - // open 타입 방어 - if (typeof open !== "boolean") { - console.error("SimilarCaseModal: open prop is not boolean:", open); - return null; - } - const [mounted, setMounted] = useState(false); const [criterion, setCriterion] = useState(""); const [selectedCaseId, setSelectedCaseId] = useState(""); @@ -130,6 +124,13 @@ export default function SimilarCaseModal({ const selectedDetail = selectedCaseId ? detailsByCaseId[selectedCaseId] : undefined; + // open 타입 방어 + if (typeof open !== "boolean") { + console.error("SimilarCaseModal: open prop is not boolean:", open); + return null; + } + + if (!open || !mounted) return null; const tdBase = diff --git a/apps/dm_new/app/(landing)/reuse/apply/register/page.tsx b/apps/dm_new/app/(landing)/reuse/apply/register/page.tsx index 4a57089fa..2a9bbaf9a 100644 --- a/apps/dm_new/app/(landing)/reuse/apply/register/page.tsx +++ b/apps/dm_new/app/(landing)/reuse/apply/register/page.tsx @@ -1,7 +1,7 @@ // apps/dm/app/(landing)/reuse/apply/register/page.tsx (수요정보등록 페이지) "use client"; -import { useMemo, useState, useRef, useEffect } from "react"; +import { useMemo, useState, useRef } from "react"; import SubPageHeader from "../../_components/SubPageHeader"; import WaterQualityRefModal from "../modal/WaterQualityRefModal"; import CandidateSiteModal, { type CandidateSite } from "../modal/CandidateSiteModal"; @@ -27,136 +27,136 @@ export default function DemandRegisterPage() { const [openSimilar, setOpenSimilar] = useState(false); // 유사사례 rows (목업) - API 연동 시 여기만 교체 - const rows: SimilarCaseRow[] = useMemo( - () => [ - { - caseId: "C-001", - projectName: "OO시 물 재이용(빗물, 중수도) 시설 설치사업", - period: "2020.01. ~ 2025.05.", - supplyFacilityType: "중수도", - supplyName: "OO새교복지타운", - supplyCapacity: 0, - demandName: "OO새교복지타운", - demandAddress: "OO시 수청로 192", - facilityCapacity: 50, - pipeKm: 0, - purpose: "청소, 화장실, 조경", - supplyAmt: 50, - treatment: "MBLM", - usePurpose: "청소,화장실", - }, - { - caseId: "C-001", - projectName: "OO시 물 재이용(빗물, 중수도) 시설 설치사업", - period: "2020.01. ~ 2025.05.", - supplyFacilityType: "중수도", - supplyName: "OO스포츠센터", - supplyCapacity: 0, - demandName: "OO스포츠센터", - demandAddress: "OO시 경기동로 33", - facilityCapacity: 50, - pipeKm: 0, - purpose: "청소, 화장실, 조경", - supplyAmt: 50, - treatment: "MBLM", - usePurpose: "청소,화장실", - }, - { - caseId: "C-002", - projectName: "OO 엄성저수지 하수처리수 재이용사업", - period: "2019.12 ~ 2026.01", - supplyFacilityType: "하수", - supplyName: "OO 3,4단계 공공하수처리시설", - supplyCapacity: 70000, - demandName: "OO천", - demandAddress: "-", - facilityCapacity: 0, - pipeKm: 3, - purpose: "하천 등 유지용수", - supplyAmt: 2300, - treatment: "탈황,총인, 생물산화과,소독", - usePurpose: "하천 등 유지용수", - }, - { - caseId: "C-002", - projectName: "OO 엄성저수지 하수처리수 재이용사업", - period: "2019.12 ~ 2026.01", - supplyFacilityType: "하수", - supplyName: "OO 3,4단계 공공하수처리시설", - supplyCapacity: 70000, - demandName: "OO저수지", - demandAddress: "-", - facilityCapacity: 0, - pipeKm: 5, - purpose: "하천 등 유지용수", - supplyAmt: 7700, - treatment: "탈황,총인, 생물산화과,소독", - usePurpose: "하천 등 유지용수", - }, - ], - [] - ); + // const rows: SimilarCaseRow[] = useMemo( + // () => [ + // { + // caseId: "C-001", + // projectName: "OO시 물 재이용(빗물, 중수도) 시설 설치사업", + // period: "2020.01. ~ 2025.05.", + // supplyFacilityType: "중수도", + // supplyName: "OO새교복지타운", + // supplyCapacity: 0, + // demandName: "OO새교복지타운", + // demandAddress: "OO시 수청로 192", + // facilityCapacity: 50, + // pipeKm: 0, + // purpose: "청소, 화장실, 조경", + // supplyAmt: 50, + // treatment: "MBLM", + // usePurpose: "청소,화장실", + // }, + // { + // caseId: "C-001", + // projectName: "OO시 물 재이용(빗물, 중수도) 시설 설치사업", + // period: "2020.01. ~ 2025.05.", + // supplyFacilityType: "중수도", + // supplyName: "OO스포츠센터", + // supplyCapacity: 0, + // demandName: "OO스포츠센터", + // demandAddress: "OO시 경기동로 33", + // facilityCapacity: 50, + // pipeKm: 0, + // purpose: "청소, 화장실, 조경", + // supplyAmt: 50, + // treatment: "MBLM", + // usePurpose: "청소,화장실", + // }, + // { + // caseId: "C-002", + // projectName: "OO 엄성저수지 하수처리수 재이용사업", + // period: "2019.12 ~ 2026.01", + // supplyFacilityType: "하수", + // supplyName: "OO 3,4단계 공공하수처리시설", + // supplyCapacity: 70000, + // demandName: "OO천", + // demandAddress: "-", + // facilityCapacity: 0, + // pipeKm: 3, + // purpose: "하천 등 유지용수", + // supplyAmt: 2300, + // treatment: "탈황,총인, 생물산화과,소독", + // usePurpose: "하천 등 유지용수", + // }, + // { + // caseId: "C-002", + // projectName: "OO 엄성저수지 하수처리수 재이용사업", + // period: "2019.12 ~ 2026.01", + // supplyFacilityType: "하수", + // supplyName: "OO 3,4단계 공공하수처리시설", + // supplyCapacity: 70000, + // demandName: "OO저수지", + // demandAddress: "-", + // facilityCapacity: 0, + // pipeKm: 5, + // purpose: "하천 등 유지용수", + // supplyAmt: 7700, + // treatment: "탈황,총인, 생물산화과,소독", + // usePurpose: "하천 등 유지용수", + // }, + // ], + // [] + // ); // 유사사례 상세(목업) - caseId로 매핑 - const detailsByCaseId: Record = useMemo( - () => ({ - "C-001": { - coliform: "불검출", - residualCl: "0.2이상", - turbidity: "1.5이하", - bod: "4.0이하", - odor: "불쾌하지않을것", - color: "10이하", - tn: "-", - tp: "-", - ph: "5.8~8.5", - chloride: "-", - ec: "-", - note: "-", + // const detailsByCaseId: Record = useMemo( + // () => ({ + // "C-001": { + // coliform: "불검출", + // residualCl: "0.2이상", + // turbidity: "1.5이하", + // bod: "4.0이하", + // odor: "불쾌하지않을것", + // color: "10이하", + // tn: "-", + // tp: "-", + // ph: "5.8~8.5", + // chloride: "-", + // ec: "-", + // note: "-", - costTotal: 4305, - costFacility: 3518, - costPipe: undefined, - costDesign: 350, - costSupervision: 417, - costOther: 12, + // costTotal: 4305, + // costFacility: 3518, + // costPipe: undefined, + // costDesign: 350, + // costSupervision: 417, + // costOther: 12, - fundingTotal: 4305, - fundingNational: 3104, - fundingLocal: 1291, - fundingSelf: undefined, - fundingRate: 70.0, - }, - "C-002": { - coliform: "불검출", - residualCl: "0.15이상", - turbidity: "2.0이하", - bod: "5.0이하", - odor: "무", - color: "10이하", - tn: "-", - tp: "-", - ph: "6.0~8.5", - chloride: "-", - ec: "-", - note: "-", + // fundingTotal: 4305, + // fundingNational: 3104, + // fundingLocal: 1291, + // fundingSelf: undefined, + // fundingRate: 70.0, + // }, + // "C-002": { + // coliform: "불검출", + // residualCl: "0.15이상", + // turbidity: "2.0이하", + // bod: "5.0이하", + // odor: "무", + // color: "10이하", + // tn: "-", + // tp: "-", + // ph: "6.0~8.5", + // chloride: "-", + // ec: "-", + // note: "-", - costTotal: 9800, - costFacility: 2100, - costPipe: 1800, - costDesign: 300, - costSupervision: 280, - costOther: 1200, + // costTotal: 9800, + // costFacility: 2100, + // costPipe: 1800, + // costDesign: 300, + // costSupervision: 280, + // costOther: 1200, - fundingTotal: 9800, - fundingNational: 4900, - fundingLocal: 3000, - fundingSelf: 1900, - fundingRate: 50, - }, - }), - [] - ); + // fundingTotal: 9800, + // fundingNational: 4900, + // fundingLocal: 3000, + // fundingSelf: 1900, + // fundingRate: 50, + // }, + // }), + // [] + // ); // 기본정보 const [reqDate, setReqDate] = useState(today);