diff --git a/apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx b/apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx
index 12532f317..4304945bd 100644
--- a/apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx
+++ b/apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx
@@ -44,7 +44,6 @@ import { zodResolver } from "@hookform/resolvers/zod";
import moment from "moment";
import { useEffect, useRef, useState } from "react";
import { useForm, useWatch } from "react-hook-form";
-import { Toaster } from "react-hot-toast";
import { z } from "zod";
@@ -771,7 +770,6 @@ export default function CoMatRvw() {
-
>
);
}
diff --git a/apps/wr/app/(with-layout)/matMng/coMat/ruseCaseMng/page.tsx b/apps/wr/app/(with-layout)/matMng/coMat/ruseCaseMng/page.tsx
index 542f66844..9fc636427 100644
--- a/apps/wr/app/(with-layout)/matMng/coMat/ruseCaseMng/page.tsx
+++ b/apps/wr/app/(with-layout)/matMng/coMat/ruseCaseMng/page.tsx
@@ -23,7 +23,6 @@ import ListDiv from "@common/business_components/ui/list_div";
import { Button, Label } from "@common/components/ui";
import { useAlertStore } from "@/src/shared/lib";
import { useEffect, useState } from "react";
-import { Toaster } from "react-hot-toast";
import { useTranslation } from "react-i18next";
import * as XLSX from "xlsx";
@@ -357,7 +356,6 @@ export default function RuseCaseMng() {
-
{/* 엑셀 등록 모달 */}
-
);
}
diff --git a/apps/wr/app/(with-layout)/matMng/coMng/coSttn/page.tsx b/apps/wr/app/(with-layout)/matMng/coMng/coSttn/page.tsx
index 8646d3a44..88b58e3f7 100644
--- a/apps/wr/app/(with-layout)/matMng/coMng/coSttn/page.tsx
+++ b/apps/wr/app/(with-layout)/matMng/coMng/coSttn/page.tsx
@@ -32,7 +32,6 @@ import type { DemandCompType } from "@common/business_components/ui/sdmInsertFor
import { Button } from "@common/components/ui";
import moment from "moment";
import { useCallback, useEffect, useState } from "react";
-// import toast, { Toaster } from "react-hot-toast";
import { useTranslation } from "react-i18next";
import { useAlertStore } from "@/src/shared/lib";
import { useConfirm } from "@frontend-opensource/use-react-hooks";
@@ -374,7 +373,6 @@ export default function CoSttn() {
}
>
- {/* */}
>
);
}
diff --git a/apps/wr/app/(with-layout)/matMng/coMng/drgtSttn/page.tsx b/apps/wr/app/(with-layout)/matMng/coMng/drgtSttn/page.tsx
index 1509e2081..1aafb4318 100644
--- a/apps/wr/app/(with-layout)/matMng/coMng/drgtSttn/page.tsx
+++ b/apps/wr/app/(with-layout)/matMng/coMng/drgtSttn/page.tsx
@@ -11,7 +11,6 @@ import ListDiv from "@common/business_components/ui/list_div";
import { Button, Label, ScrollArea } from "@common/components/ui";
import { useAlertStore } from "@/src/shared/lib";
import { useEffect, useState, useRef } from "react";
-import { Toaster } from "react-hot-toast";
export default function DrgtSttn() {
const { code, drgt, drgtSearch, drgtModalSearch, drgtInit } = useWrStore((state) => state);
@@ -292,7 +291,6 @@ export default function DrgtSttn() {
bodyClass={"w-[50vw] max-w-none h-[80vh]"}
body={}
/>
-
>
)
diff --git a/apps/wr/app/(with-layout)/matMng/coMng/ldrmntCoSttn/page.tsx b/apps/wr/app/(with-layout)/matMng/coMng/ldrmntCoSttn/page.tsx
index 5f4b576b8..41e16088e 100644
--- a/apps/wr/app/(with-layout)/matMng/coMng/ldrmntCoSttn/page.tsx
+++ b/apps/wr/app/(with-layout)/matMng/coMng/ldrmntCoSttn/page.tsx
@@ -29,7 +29,6 @@ import ListDiv from "@common/business_components/ui/list_div";
import { Button } from "@common/components/ui";
import { useAlertStore } from "@/src/shared/lib";
import { useCallback, useEffect, useState } from "react";
-import { Toaster } from "react-hot-toast";
import { useTranslation } from "react-i18next";
export default function LdrmntCoSttn() {
@@ -290,7 +289,6 @@ export default function LdrmntCoSttn() {
bodyClass={"w-[40vw] max-w-none"}
body={ setIsExcelOpen({ isModal: isOpen })} />}
/>
-
>
diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/htdflReg/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/htdflReg/page.tsx
index acc44571f..d8f52297c 100644
--- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/htdflReg/page.tsx
+++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/htdflReg/page.tsx
@@ -18,7 +18,6 @@ import {
import ListDiv from "@common/business_components/ui/list_div";
import { Button } from "@common/components";
import { useEffect, useRef, useState } from "react";
-import { Toaster } from "react-hot-toast";
export default function Home() {
const {
@@ -183,7 +182,6 @@ export default function Home() {
}}
/>
-
>
);
diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/pbnstReg/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/pbnstReg/page.tsx
index 87dff04fd..102414c37 100644
--- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/pbnstReg/page.tsx
+++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/pbnstReg/page.tsx
@@ -30,7 +30,7 @@ import { btnClass } from "@/app/store/common/code";
import { Tabs, TabsList, TabsTrigger, TabsContent } from "@common/components";
import { useCallback, useEffect, useRef, useState } from "react";
import ListDiv from "@common/business_components/ui/list_div";
-import { confirmToast, tableData } from "@/components/lib/func/common";
+import { tableData } from "@/components/lib/func/common";
import type {
customPbnst,
fcBizType,
@@ -44,13 +44,13 @@ import {
import { PbnstMngForm } from "@/components/ui/form/fcltReg/pbnstReg/mngReg/mngRegForm";
import { PbnstBuseForm } from "@/components/ui/form/fcltReg/pbnstReg/buseReg/bugRegForm";
import { PbnstRegModal } from "@/components/ui/modal/fcltReg/pbnstRegModal/pbnstRegModal";
-import { Toaster } from "react-hot-toast";
import { writeRgtrAndMdfr } from "@/app/store/ruseFcltMng/fcltReg/pbnstReg";
import { useFieldArray, useForm, type FieldErrors } from "react-hook-form"; // FieldErrors 타입 추가
import { zodResolver } from "@hookform/resolvers/zod";
import { z } from "zod";
import { createDefaultPbnstItem } from "./utilsZod";
import { useTranslation } from "react-i18next";
+import { useConfirm } from "@frontend-opensource/use-react-hooks";
import { useAlertStore } from "@/src/shared/lib";
export default function PublicReuseFaciltyInsert() {
const {
@@ -67,6 +67,7 @@ export default function PublicReuseFaciltyInsert() {
} = useWrStore((state) => state);
const { t } = useTranslation("base");
+ const { confirm } = useConfirm();
const alert = useAlertStore((state) => state.setMessage);
const { pubFacHeadList, pbnstHasuResCount, pbnstHasuRes, pbnstRes } = pbnst;
const { regAuthrtYn, mdfcnAuthrtYn, laeSeCd } = auth;
@@ -137,30 +138,29 @@ export default function PublicReuseFaciltyInsert() {
});
const handleConfirm = async () => {
- Promise.allSettled([
+ const [resFclt, resBiz] = await Promise.allSettled([
pbnstRuseFcltUpdate(pbnst as customPbnst[]),
pbnstRuseBizUpdate(bizs),
- ]).then(([resFclt, resBiz]) => {
- const isFcltSuccess = resFclt.status === "fulfilled";
- const isBizSuccess = resBiz.status === "fulfilled";
- if (isFcltSuccess && isBizSuccess) {
- alert("하수 재이용 시설 및 사업이 수정되었습니다.");
- // 메시지 표시, 페이지 이동 등
- } else {
- let message = "";
- // ✅ 각각 어떤 항목이 실패했는지도 로그/알림 처리
- if (!isFcltSuccess) {
- message = "하수재이용 시설 ";
- }
- if (!isBizSuccess) {
- message += "하수재이용 시설 사업 ";
- }
- alert(message + "오류 입니다 ");
- pubHasuInit("1", laeSeCd);
+ ]);
+ const isFcltSuccess = resFclt.status === "fulfilled";
+ const isBizSuccess = resBiz.status === "fulfilled";
+ if (isFcltSuccess && isBizSuccess) {
+ alert("하수 재이용 시설 및 사업이 수정되었습니다.");
+ } else {
+ let message = "";
+ if (!isFcltSuccess) {
+ message = "하수재이용 시설 ";
}
- });
+ if (!isBizSuccess) {
+ message += "하수재이용 시설 사업 ";
+ }
+ alert(message + "오류 입니다 ");
+ pubHasuInit("1", laeSeCd);
+ }
};
- confirmToast(t("isUpdatetMsg"), handleConfirm);
+ if (await confirm(t("isUpdatetMsg"))) {
+ await handleConfirm();
+ }
};
// 폼 유효성 검사 실패 시 호출될 함수
@@ -330,9 +330,7 @@ export default function PublicReuseFaciltyInsert() {
onClick={() => {
// pbnstMngData([] as customPbnst[]);
if (!selectRow) {
- alert(
- "재시용시설을 등록할 하수리시시설을 테이블에서 선택하고 등록버튼을 눌러주세요"
- );
+ alert("재시용시설을 등록할 하수처리시설을 목록에서 선택하고\n 등록버튼을 눌러주세요");
return;
} else {
appendPbnstRuseFclt();
@@ -433,9 +431,7 @@ export default function PublicReuseFaciltyInsert() {
onClick={() => {
// pbnstMngData([] as customPbnst[]);
if (!selectRow) {
- alert(
- "하수리시시설을 테이블을 선택하고 등록버튼을 눌러주세요"
- );
+ alert("하수처리시설을 목록에서 선택하고\n 등록버튼을 눌러주세요");
return;
} else {
appendPbnstRuseFclt();
@@ -470,7 +466,6 @@ export default function PublicReuseFaciltyInsert() {
}}
/>
-
>
);
diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/rainReg/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/rainReg/page.tsx
index 9dd14c844..82344fa1f 100644
--- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/rainReg/page.tsx
+++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/rainReg/page.tsx
@@ -20,7 +20,6 @@ import {
import ListDiv from "@common/business_components/ui/list_div";
import { Button } from "@common/components";
import { useEffect, useRef, useState } from "react";
-import { Toaster } from "react-hot-toast";
@@ -199,7 +198,6 @@ export default function Home() {
}}
/>
-
>
);
diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/rswtReg/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/rswtReg/page.tsx
index ec2c7eda8..845ebf0e8 100644
--- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/rswtReg/page.tsx
+++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/rswtReg/page.tsx
@@ -20,7 +20,6 @@ import {
import ListDiv from "@common/business_components/ui/list_div";
import { Button } from "@common/components";
import { useEffect, useRef, useState } from "react";
-import { Toaster } from "react-hot-toast";
/**
@@ -202,7 +201,6 @@ export default function Home() {
}}
/>
-
>
);
diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/htdflSttn/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/htdflSttn/page.tsx
index 28c286352..07b99d5b8 100644
--- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/htdflSttn/page.tsx
+++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/htdflSttn/page.tsx
@@ -34,7 +34,7 @@ import ListDiv from "@common/business_components/ui/list_div";
import { HeadMakeColSpan } from "@common/business_components/ui/table/HeadMakeColSpan";
import { Button, Label } from "@common/components/ui";
import { useCallback, useEffect, useRef, useState } from "react";
-import toast, { Toaster } from "react-hot-toast";
+import toast from "react-hot-toast";
import { useTranslation } from "react-i18next";
export default function HtdflSttn() {
@@ -276,7 +276,6 @@ export default function HtdflSttn() {
body={}
/>
-
>
);
}
diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx
index 2d20be6aa..53c41a17d 100644
--- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx
+++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx
@@ -30,7 +30,7 @@ import ListDiv from "@common/business_components/ui/list_div";
import { HeadMakeColSpan } from "@common/business_components/ui/table/HeadMakeColSpan";
import { Button, Label } from "@common/components/ui";
import { useCallback, useEffect, useRef, useState } from "react";
-import toast, { Toaster } from "react-hot-toast";
+import toast from "react-hot-toast";
import { useTranslation } from "react-i18next";
@@ -270,7 +270,6 @@ export default function PbnstSttn() {
}}
/>
-
>
);
}
diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rainSttn/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rainSttn/page.tsx
index 60c917751..bf6601164 100644
--- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rainSttn/page.tsx
+++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rainSttn/page.tsx
@@ -32,7 +32,7 @@ import ListDiv from "@common/business_components/ui/list_div";
import { HeadMakeColSpan } from "@common/business_components/ui/table/HeadMakeColSpan";
import { Button, Label } from "@common/components/ui";
import { useCallback, useEffect, useRef, useState } from "react";
-import toast, { Toaster } from "react-hot-toast";
+import toast from "react-hot-toast";
import { useTranslation } from "react-i18next";
export default function RainSttn() {
@@ -319,7 +319,6 @@ export default function RainSttn() {
body={}
/>
-
>
);
}
diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rswtSttn/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rswtSttn/page.tsx
index 25ad68635..ac53229d0 100644
--- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rswtSttn/page.tsx
+++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rswtSttn/page.tsx
@@ -32,7 +32,7 @@ import ListDiv from "@common/business_components/ui/list_div";
import { HeadMakeColSpan } from "@common/business_components/ui/table/HeadMakeColSpan";
import { Button, Label } from "@common/components/ui";
import { useCallback, useEffect, useRef, useState } from "react";
-import toast, { Toaster } from "react-hot-toast";
+import toast from "react-hot-toast";
import { useTranslation } from "react-i18next";
export default function RswtSttn() {
@@ -279,7 +279,6 @@ export default function RswtSttn() {
/>
-
>
);
}
diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/chkgdnReg/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/chkgdnReg/page.tsx
index 28f1e01b2..5bf2850c8 100644
--- a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/chkgdnReg/page.tsx
+++ b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/chkgdnReg/page.tsx
@@ -38,7 +38,7 @@ import {
TooltipTrigger,
} from "@common/components/ui/tooltip";
import { useCallback, useEffect, useRef, useState } from "react";
-import toast, { Toaster } from "react-hot-toast";
+import toast from "react-hot-toast";
import { useTranslation } from "react-i18next";
export default function Page() {
@@ -434,7 +434,6 @@ export default function Page() {
>
}
/>
-
);
}
diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/pbnstPrfmncReg/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/pbnstPrfmncReg/page.tsx
index 4261ab657..aa9945f90 100644
--- a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/pbnstPrfmncReg/page.tsx
+++ b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/pbnstPrfmncReg/page.tsx
@@ -37,7 +37,7 @@ import {
TableHeader,
} from "@common/components/ui";
import { useCallback, useEffect, useRef, useState } from "react";
-import toast, { Toaster } from "react-hot-toast";
+import toast from "react-hot-toast";
import { useTranslation } from "react-i18next";
import { headMakeprfmnc } from "../chkgdnReg/TableHead";
@@ -381,7 +381,6 @@ export default function PrfmncPrfmncReg() {
setIsExcelOPen({ ...isExcelOpen, isModal: false });
}}
>
-
>
);
}
diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/chkgdnSttn/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/chkgdnSttn/page.tsx
index 18a30d2be..43cc6874d 100644
--- a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/chkgdnSttn/page.tsx
+++ b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/chkgdnSttn/page.tsx
@@ -21,7 +21,7 @@ import {
import ListDiv from "@common/business_components/ui/list_div";
import { Button, Label } from "@common/components/ui";
import { useCallback, useEffect, useState } from "react";
-import toast, { Toaster } from "react-hot-toast";
+import toast from "react-hot-toast";
import { useTranslation } from "react-i18next";
export default function Page() {
@@ -307,7 +307,6 @@ export default function Page() {
/>
}
>
-
);
}
diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/pbnstPrfmncSttn/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/pbnstPrfmncSttn/page.tsx
index 07382917f..fc790ea26 100644
--- a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/pbnstPrfmncSttn/page.tsx
+++ b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/pbnstPrfmncSttn/page.tsx
@@ -11,7 +11,7 @@ import { CHART_FORM, ContentsDiv, MainChart, ScrollArea, SearchBaseForm, SearchI
import ListDiv from "@common/business_components/ui/list_div";
import { Label, Table, TableBody, TableHeader } from "@common/components/ui";
import { useCallback, useEffect, useRef, useState } from "react";
-import toast, { Toaster } from "react-hot-toast";
+import toast from "react-hot-toast";
import { useTranslation } from "react-i18next";
import { headMakeprfmnc } from "../../prfmncReg/chkgdnReg/TableHead";
@@ -723,7 +723,6 @@ export default function PbnstPrfmncSttn() {
-
>
)
}
diff --git a/apps/wr/app/(with-layout)/stats/rswtStat/page.tsx b/apps/wr/app/(with-layout)/stats/rswtStat/page.tsx
index 026c27a62..9fa896555 100644
--- a/apps/wr/app/(with-layout)/stats/rswtStat/page.tsx
+++ b/apps/wr/app/(with-layout)/stats/rswtStat/page.tsx
@@ -15,7 +15,7 @@ import {
import ListDiv from "@common/business_components/ui/list_div";
import { Button } from "@common/components/ui";
import { useEffect, useState } from "react";
-import toast, { Toaster } from "react-hot-toast";
+import toast from "react-hot-toast";
import { useTranslation } from "react-i18next";
export default function RswtStat() {
@@ -296,7 +296,6 @@ export default function RswtStat() {
-
>
);
diff --git a/apps/wr/src/app/providers/app-provider.tsx b/apps/wr/src/app/providers/app-provider.tsx
index 0497e1f52..88a10e46e 100644
--- a/apps/wr/src/app/providers/app-provider.tsx
+++ b/apps/wr/src/app/providers/app-provider.tsx
@@ -14,6 +14,7 @@ import { ConfirmDialog } from "../../shared/ui/confirm-dialog";
// import "./globals.css";
import i18next from "i18next";
import { I18nextProvider } from "react-i18next";
+import { Toaster } from "react-hot-toast";
import koBase from "@/public/locales/ko/message.json";
import { StoreProvider as WrStoreProvider } from "@/app/store";
//import { LoginApi } from "@/src/entities/auth";
@@ -54,6 +55,7 @@ const AppProvider = ({ children }: Readonly<{ children: React.ReactNode }>) => {
+