wr: confirmToast->useConfirm

This commit is contained in:
2026-04-03 17:50:13 +09:00
parent b8ff15f187
commit bbca5ac6f2
10 changed files with 68 additions and 34 deletions
@@ -7,13 +7,13 @@ import { useWrStore } from "@/app/store";
import { btnClass } from "@/app/store/common/code";
import { type RvwHistTableType } from "@/app/store/matDmd/coMatRvw/type";
import {
confirmToast,
formatPhoneNumber,
getCity,
getdmdMatFlag,
tableData,
yearOptions,
} from "@/components/lib/func/common";
import { useConfirm } from "@frontend-opensource/use-react-hooks";
import type { objSearchType } from "@/components/ui/modal/fcltReg/bdstRegModal/bdstRegModal";
import {
ContentsDiv,
@@ -44,6 +44,7 @@ export default function RuseRvwHstry() {
const { rvwHistRes, ruseHistHeadList, rvwHistCount } = ruseHist;
const { regAuthrtYn } = auth;
const alert = useAlertStore((state) => state.setMessage);
const { confirm } = useConfirm();
const [pageNation, setPageNatiion] = useState<number>(1);
@@ -145,7 +146,7 @@ export default function RuseRvwHstry() {
},
[rvwHistData]
);
const confrirmToast = () => {
const confrirmToast = async () => {
const completeData = rvwHistData
?.map((item) => {
if (item?.completeYn.chk && item.splyFcltFlg === "검토완료") {
@@ -155,7 +156,9 @@ export default function RuseRvwHstry() {
.filter((item) => item !== undefined);
if (completeData && completeData?.length > 0) {
confirmToast(t('isMatchFinishMsg'), () => ruseRvwComplete(completeData as number[]));
if (await confirm(t("isMatchFinishMsg"))) {
await ruseRvwComplete(completeData as number[]);
}
// const handleConfirm = async () => {
// ruseRvwComplete(completeData as number[]);
@@ -319,7 +322,7 @@ export default function RuseRvwHstry() {
>
조회
</Button>
<Button className={btnClass} onClick={confrirmToast} disabled={regAuthrtYn==='N'}>
<Button className={btnClass} onClick={() => { void confrirmToast(); }} disabled={regAuthrtYn==='N'}>
저장
</Button>
</div>
@@ -8,7 +8,6 @@ import { btnClass } from "@/app/store/common/code";
import { excelCoSttnParsing } from "@/app/store/matDmd/coSttn/excel";
import { fetchType, getFetch } from "@/components/lib/api";
import {
//confirmToast,
excelDownload,
formatPhoneNumber,
getCity,
@@ -180,7 +179,6 @@ export default function CoSttn() {
const message = await coSttnPwInit(dmdInfoId);
alert(message);
};
//confirmToast( t('isInitPw', { dmdInfoId: dmdInfoSliceId }), handleConfirm, 'text-2xl');
if (await confirm(t('isInitPw', { dmdInfoId: dmdInfoSliceId }))) {
await handleConfirm();
}
@@ -5,7 +5,6 @@ import { btnClass } from "@/app/store/common/code";
import { type customLdrmnt } from "@/app/store/matDmd/ldrmntCoSttn";
import { ldrmntHeadListExport } from "@/app/store/matDmd/ldrmntCoSttn/headList";
import {
confirmToast,
excelDownload,
getCity,
tableData
@@ -27,6 +26,7 @@ import {
} from "@common/business_components/ui";
import ListDiv from "@common/business_components/ui/list_div";
import { Button } from "@common/components/ui";
import { useConfirm } from "@frontend-opensource/use-react-hooks";
import { useAlertStore } from "@/src/shared/lib";
import { useCallback, useEffect, useState } from "react";
import { useTranslation } from "react-i18next";
@@ -47,6 +47,7 @@ export default function LdrmntCoSttn() {
const [isDownloadClicked, setIsDownloadClicked] = useState(false);
const { t } = useTranslation('base');
const alert = useAlertStore((state) => state.setMessage);
const { confirm } = useConfirm();
const { regAuthrtYn, mdfcnAuthrtYn } = auth;
const excelClick = useCallback(() => {
@@ -277,7 +278,9 @@ export default function LdrmntCoSttn() {
setDetailModal({ ...detailModal, isOpen: false });
ldrmntSearch(false, pageNation, '20', computeCityNm(), searchTxt || "");
};
confirmToast(t('isUpdateMsg'), handleConfirm);
if (await confirm(t("isUpdateMsg"))) {
await handleConfirm();
}
}} />}
/>
@@ -11,11 +11,11 @@ import {
type rswtrChkDetailsZodType,
} from "@/app/store/prfmncReg/chkgdnReg/rswrtChkgdn";
import {
confirmToast,
excelArrayDownload,
excelDownload,
yearOptions,
} from "@/components/lib/func/common";
import { useConfirm } from "@frontend-opensource/use-react-hooks";
import ChkgdExcel from "@/components/ui/modal/chkgd/chkgdExcel/chkgdExcel";
import ChkgdModal from "@/components/ui/modal/chkgd/chkgdModal/chkgdModal";
import RainChkgdTable from "@/components/ui/table/chkgdTable/rainChkgd/rainChkgdTable";
@@ -66,6 +66,7 @@ export default function Page() {
return state;
});
const { regAuthrtYn, mdfcnAuthrtYn, delAuthrtYn,laeSeCd } = auth;
const { confirm } = useConfirm();
const [isRegExcel, setIsRegExcel] = useState(false);
const [updateRainDetail, setUpdateRainDetail] = useState<rainChkZodType[]>([]);
const [updateRswtDetail, setUpdateRSwtDetail] = useState<rswtrChkDetailsZodType[]>([]);
@@ -236,18 +237,22 @@ export default function Page() {
}, [rainChkgdn.isSttn, rswtChkgdn.isSttn]);
const { t } = useTranslation('base');
const clickDelete = (data: number[], selFcltDiv: string) => {
const clickDelete = async (data: number[], selFcltDiv: string) => {
if (data.length > 0) {
if (selFcltDiv === "RNB") {
const handleConfirm = async () => {
rainChkDelete(data, searchYear);
};
confirmToast(t('isDeleteMsg'), handleConfirm);
if (await confirm(t("isDeleteMsg"))) {
await handleConfirm();
}
} else {
const handleConfirm = async () => {
rswtChkDelete(data, searchYear);
};
confirmToast(t('isDeleteMsg'), handleConfirm);
if (await confirm(t("isDeleteMsg"))) {
await handleConfirm();
}
}
}
};
@@ -330,7 +335,7 @@ export default function Page() {
<Button
className={btnClass}
onClick={() => {
clickDelete(deleteIdx, selFcltDiv);
void clickDelete(deleteIdx, selFcltDiv);
}}
disabled={delAuthrtYn === 'N'}
>
@@ -11,10 +11,10 @@ import {
type PrfType,
} from "@/app/store/prfmncReg/pbnstPrfmncReg/type";
import {
confirmToast,
excelDownload,
yearOptions,
} from "@/components/lib/func/common";
import { useConfirm } from "@frontend-opensource/use-react-hooks";
import { InputTableBody } from "@/components/lib/func/TableData";
import PbnPrfExcelModal from "@/components/ui/modal/chkgd/pbnPrfExcelModal/pbnPrfExcelModal";
import {
@@ -72,6 +72,7 @@ export default function PrfmncPrfmncReg() {
const [searchYear, setSearchYear] = useState<string>(
String(new Date().getFullYear())
);
const { confirm } = useConfirm();
const useInitRef = useRef(false);
@@ -85,7 +86,7 @@ export default function PrfmncPrfmncReg() {
}, [prfmnc.excelList]);
const { t } = useTranslation("base");
const onSave = useCallback(() => {
const onSave = useCallback(async () => {
const handleConfirm = async () => {
if (!pbnstRuseFcltId) return;
@@ -102,8 +103,10 @@ export default function PrfmncPrfmncReg() {
);
};
confirmToast(t("isUpdateMsg"), handleConfirm);
}, [inputData, searchYear, pbnstRuseFcltId, cellNum, prfPbnFclts]);
if (await confirm(t("isUpdateMsg"))) {
await handleConfirm();
}
}, [inputData, searchYear, pbnstRuseFcltId, cellNum, prfPbnFclts, confirm, t, laeSeCd, prfmnRegData]);
const cellClick = useCallback(
(index: number | undefined) => {
@@ -274,7 +277,7 @@ export default function PrfmncPrfmncReg() {
<Button
className={btnClass}
onClick={() => {
onSave();
void onSave();
}}
disabled={mdfcnAuthrtYn === "N"}
>
@@ -9,11 +9,11 @@ import {
import { selectClass } from "@/app/store/ruseFcltMng/fcltReg/rainReg";
import { formH1Class } from "@/components/lib/class/comClass";
import {
confirmToast,
formatCommaNumber,
handleCommaNumberChange,
handleOnlyNumberChange,
} from "@/components/lib/func/common";
import { useConfirm } from "@frontend-opensource/use-react-hooks";
import {
Form,
FormField,
@@ -54,6 +54,7 @@ export default function HtdflRegForm({
defaultValues: defaultValues,
});
const { laeSeCd } = auth;
const { confirm } = useConfirm();
const [regCtpvCd, regSggcd] = form.watch(["ctpvCd", "sggCd"]);
@@ -78,20 +79,26 @@ export default function HtdflRegForm({
htdflBdstReg(values, data,myUUID);
if (setIsModal) setIsModal(false);
};
confirmToast(t("isInsertMsg"), handleConfirm);
if (await confirm(t("isInsertMsg"))) {
await handleConfirm();
}
} else {
const handleConfirm = async () => {
await htdflBdstUpdate(values, laeSeCd,myUUID);
console.log(' htdflBdstUpdate ')
resetHtdflTableIndex(0);
};
confirmToast(t("isUpdateMsg"), handleConfirm);
if (await confirm(t("isUpdateMsg"))) {
await handleConfirm();
}
}
};
const onDelete = async () => {
const code = htdflForm.ctpvCd ? htdflForm.ctpvCd : htdflForm.sggCd ? htdflForm.sggCd : "noCd";
confirmToast(`정말 ${htdflForm.bdstNm} 시설을 삭제하시겠습니까?`, () => htdflBdstDelete(htdflForm, code));
if (await confirm(`정말 ${htdflForm.bdstNm} 시설을 삭제하시겠습니까?`)) {
await htdflBdstDelete(htdflForm, code);
}
}
const cleanHtdflData = (raw: any): z.infer<typeof hdtflZod> => {
@@ -28,7 +28,6 @@ import { useCallback, useEffect, useRef, useState } from "react";
import { useFieldArray, type UseFormReturn } from "react-hook-form";
import MngRegFormDetail from "../mngReg/mngRegFormDetail/mngRegFormDetail";
import {
//confirmToast,
formatCommaNumber,
handleCommaNumberChange,
safeDate,
@@ -39,7 +38,6 @@ import type { DemandCompType } from "@common/business_components/ui/sdmInsertFor
import RuseMngTableForm from "@/components/ui/table/pbnstReg/ruseMngTableForm/ruseMngTableForm";
import type { SelectDataType } from "@common/business_components";
import { BuseWaterQulity } from "./buseWaterQulity/buseWaterQulity";
// import toast from "react-hot-toast";
import { useTranslation } from "react-i18next";
import { useAlertStore } from "@/src/shared/lib";
//import { useTranslation } from "react-i18next";
@@ -8,10 +8,10 @@ import {
} from "@/app/store/ruseFcltMng/fcltReg/rainReg";
import { formH1Class, formH2Class } from "@/components/lib/class/comClass";
import {
confirmToast,
formatCommaNumber,
handleMinusNumberChange,
} from "@/components/lib/func/common";
import { useConfirm } from "@frontend-opensource/use-react-hooks";
import { DatePicker, FormUi } from "@common/business_components";
import { Form, FormField, SelectBox } from "@common/business_components/ui";
import { Button, Input } from "@common/components/ui";
@@ -48,6 +48,7 @@ export default function RainRegForm({
// defaultValues: defaultValues,
});
const { t } = useTranslation('base');
const { confirm } = useConfirm();
const [grntchBdstCertYn, instlCstSprtYn, filtrTrtmfctYn] = form.watch([
"reuseBuilding.0.grntchBdstCertYn",
@@ -149,19 +150,25 @@ export default function RainRegForm({
rainBdstReg(values, data,myUUID);
if (setIsModal) setIsModal(false);
};
confirmToast(t('isInsertMsg'), handleConfirm);
if (await confirm(t("isInsertMsg"))) {
await handleConfirm();
}
} else {
const handleConfirm = async () => {
await rainBdstUpdate(values, laeSeCd,myUUID);
resetRainTableIndex(0)
};
confirmToast(t('isUpdateMsg'), handleConfirm);
if (await confirm(t("isUpdateMsg"))) {
await handleConfirm();
}
}
};
const onDelete = async () => {
const code = rainForm.ctpvCd ? rainForm.ctpvCd : rainForm.sggCd ? rainForm.sggCd : "noCd";
confirmToast(`정말 ${rainForm.bdstNm} 시설을 삭제하시겠습니까?`, () => rainBdstDelete(rainForm, code));
if (await confirm(`정말 ${rainForm.bdstNm} 시설을 삭제하시겠습니까?`)) {
await rainBdstDelete(rainForm, code);
}
}
useEffect(() => {
@@ -8,10 +8,10 @@ import {
} from "@/app/store/ruseFcltMng/fcltReg/rswtReg";
import { formH1Class, formH2Class } from "@/components/lib/class/comClass";
import {
confirmToast,
formatCommaNumber,
handleMinusNumberChange,
} from "@/components/lib/func/common";
import { useConfirm } from "@frontend-opensource/use-react-hooks";
import {
DatePicker,
Form,
@@ -52,6 +52,7 @@ export default function RswtrRegForm({
}, [isMap]);
// const defaultValues: z.infer<typeof rswtZod> = rswtZod.parse({});
const { t } = useTranslation("base");
const { confirm } = useConfirm();
const form = useForm<z.infer<typeof rswtZod>>({
resolver: zodResolver(rswtZod),
@@ -85,19 +86,25 @@ export default function RswtrRegForm({
rswtBdstReg(values, data,myUUID);
if (setIsModal) setIsModal(false);
};
confirmToast(t("isInsertMsg"), handleConfirm);
if (await confirm(t("isInsertMsg"))) {
await handleConfirm();
}
} else {
const handleConfirm = async () => {
rswtBdstUpdate(values, laeSeCd,myUUID);
resetRswtTableIndex(0)
};
confirmToast(t("isUpdateMsg"), handleConfirm);
if (await confirm(t("isUpdateMsg"))) {
await handleConfirm();
}
}
};
const onDelete = async () => {
const code = rswtForm.ctpvCd ? rswtForm.ctpvCd : rswtForm.sggCd ? rswtForm.sggCd : "noCd";
confirmToast(`정말 ${rswtForm.bdstNm} 시설을 삭제하시겠습니까?`, () => rswtBdstDelete(rswtForm, code));
if (await confirm(`정말 ${rswtForm.bdstNm} 시설을 삭제하시겠습니까?`)) {
await rswtBdstDelete(rswtForm, code);
}
}
const cleanRswtData = (raw: any): z.infer<typeof rswtZod> => {
@@ -18,7 +18,7 @@ import { PbnstBuseForm } from "@/components/ui/form/fcltReg/pbnstReg/buseReg/bug
import { type FieldErrors, type UseFormReturn } from "react-hook-form";
import { writeRgtrAndMdfr } from "@/app/store/ruseFcltMng/fcltReg/pbnstReg";
import type { z } from "zod";
import { confirmToast } from "@/components/lib/func/common";
import { useConfirm } from "@frontend-opensource/use-react-hooks";
import { useTranslation } from "react-i18next";
export function PbnstRegModal({
@@ -35,6 +35,7 @@ export function PbnstRegModal({
newIndexMng:number
}) {
const { t } = useTranslation("base");
const { confirm } = useConfirm();
//TODO: 유즈 스테이트에 set만해도 되나?
const [, setCurrentTab] = useState<string>("mng");
@@ -50,7 +51,9 @@ export function PbnstRegModal({
setPbnstInsert(data[0]);
}
};
confirmToast(t("isInsertMsg"), handleConfirm);
if (await confirm(t("isInsertMsg"))) {
handleConfirm();
}
};
const handleTabChange = (value: string) => {