diff --git a/apps/as/src/entities/instl-sncn/index.ts b/apps/as/src/entities/instl-sncn/index.ts index 8fdbb442f..a1959a277 100644 --- a/apps/as/src/entities/instl-sncn/index.ts +++ b/apps/as/src/entities/instl-sncn/index.ts @@ -1,6 +1,7 @@ export { InstlSncnApi } from "./api/instl-sncn-service"; -export type { - InstlSncnMng, - InstlSncnMngSearchParams, - SpringPage, +export { + INSTL_SNCN_REGISTER_SELECTION_KEY, + type InstlSncnMng, + type InstlSncnMngSearchParams, + type SpringPage, } from "./model/instl-sncn-interface"; diff --git a/apps/as/src/entities/instl-sncn/model/instl-sncn-interface.ts b/apps/as/src/entities/instl-sncn/model/instl-sncn-interface.ts index 00a51b76b..d0c19aa35 100644 --- a/apps/as/src/entities/instl-sncn/model/instl-sncn-interface.ts +++ b/apps/as/src/entities/instl-sncn/model/instl-sncn-interface.ts @@ -1,3 +1,5 @@ +export const INSTL_SNCN_REGISTER_SELECTION_KEY = "instlSncnRegisterSelection"; + export interface SpringPage { content: T[]; totalElements: number; diff --git a/apps/as/src/pages/instl-sncn/ui/cnfm-list-page.tsx b/apps/as/src/pages/instl-sncn/ui/cnfm-list-page.tsx index 0b126f54c..a5ff158dd 100644 --- a/apps/as/src/pages/instl-sncn/ui/cnfm-list-page.tsx +++ b/apps/as/src/pages/instl-sncn/ui/cnfm-list-page.tsx @@ -7,7 +7,11 @@ import { useQuery } from "@tanstack/react-query"; import { dayjs } from "@/shared/lib"; import { useCodeList } from "@/entities/code"; -import { InstlSncnApi, type InstlSncnMngSearchParams } from "@/entities/instl-sncn"; +import { + INSTL_SNCN_REGISTER_SELECTION_KEY, + InstlSncnApi, + type InstlSncnMngSearchParams, +} from "@/entities/instl-sncn"; import "./cnfm-page.css"; @@ -69,7 +73,7 @@ function CnfmListPage() { const [taskDialogOpen, setTaskDialogOpen] = useState(false); const [selectedTaskSeComCd, setSelectedTaskSeComCd] = useState(""); - const { data: fnrsCodeList = [] } = useCodeList("FNRS"); + const { data: fnrsCodeList = [] } = useCodeList("INSTL"); useEffect(() => { if (!taskDialogOpen) return; @@ -112,12 +116,15 @@ function CnfmListPage() { const selected = fnrsCodeList.find((item) => item.lwpoCd === selectedTaskSeComCd); if (!selected) return; - const query = new URLSearchParams({ - taskSeComCd: selected.lwpoCd, - taskSeComCdNm: selected.lwpoCdNm, - }); + sessionStorage.setItem( + INSTL_SNCN_REGISTER_SELECTION_KEY, + JSON.stringify({ + taskSeComCd: selected.lwpoCd, + taskSeComCdNm: selected.lwpoCdNm, + }), + ); setTaskDialogOpen(false); - router.push(`/instl-sncn/register?${query.toString()}`); + router.push("/instl-sncn/register"); }; return ( diff --git a/apps/as/src/pages/instl-sncn/ui/cnfm-regist-page.tsx b/apps/as/src/pages/instl-sncn/ui/cnfm-regist-page.tsx index 9fbd1f552..760b410df 100644 --- a/apps/as/src/pages/instl-sncn/ui/cnfm-regist-page.tsx +++ b/apps/as/src/pages/instl-sncn/ui/cnfm-regist-page.tsx @@ -1,12 +1,13 @@ "use client"; import { useEffect, useMemo, useState } from "react"; -import { useRouter, useSearchParams } from "next/navigation"; +import { useRouter } from "next/navigation"; import { useQuery } from "@tanstack/react-query"; import type { AcntgSeMngTreeDto } from "@/entities/acntg"; import { acntgService } from "@/entities/acntg"; +import { INSTL_SNCN_REGISTER_SELECTION_KEY } from "@/entities/instl-sncn"; import { Button, Input } from "@common/components"; import "./cnfm-page.css"; @@ -55,14 +56,23 @@ const ReadCell = ({ value }: { value: string | number }) => ( /* ------------------------------------------------------------------ */ function CnfmRegistPage() { const router = useRouter(); - const searchParams = useSearchParams(); - - const taskSeComCdNm = searchParams?.get("taskSeComCdNm") || "하수관로"; - const [taskSeComCd, setTaskSeComCd] = useState(""); + const [taskSeComCdNm, setTaskSeComCdNm] = useState("재이용수"); + const [taskSeComCd, setTaskSeComCd] = useState("RE"); useEffect(() => { - setTaskSeComCd(searchParams?.get("taskSeComCd") || ""); - }, [searchParams]); + const raw = sessionStorage.getItem(INSTL_SNCN_REGISTER_SELECTION_KEY); + if (!raw) return; + + try { + const parsed = JSON.parse(raw) as { taskSeComCd?: string; taskSeComCdNm?: string }; + setTaskSeComCd(parsed.taskSeComCd || "RE"); + setTaskSeComCdNm(parsed.taskSeComCdNm || "재이용수"); + } catch { + // noop + } finally { + sessionStorage.removeItem(INSTL_SNCN_REGISTER_SELECTION_KEY); + } + }, []); /* ── 기본 정보 ── */ const [bzNm, setBzNm] = useState("");