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 f3567210d..880b3d8a7 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/rainReg/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/rainReg/page.tsx @@ -48,14 +48,14 @@ export default function Home() { const { regAuthrtYn, mdfcnAuthrtYn, laeSeCd } = auth; - const { rainRes, rainResCount } = rain; + const { rainRes, rainResCount ,rainTableIndex} = rain; const useInitRef = useRef(false); const [rainForm, setRainForm] = useState(); const [issNewReg, setIsNewReg] = useState(false); const [pageNation, setPageNation] = useState(1); const [bdstTable, setbdstTable] = useState(); const [searchTxt, setSearchTxt] = useState(); - + const [resetPageNo, setResetPageNo] = useState(false); useEffect(() => { getLaeSeCdCheck(); useInitRef.current = true; @@ -91,13 +91,23 @@ export default function Home() { const cellClick: (val: number | undefined) => void = (val) => { if (val !== undefined) { setRainForm(rainRes[val]); + setResetPageNo(false); } }; useEffect(() => { getRainData(pageNation, laeSeCd); + setResetPageNo(false); }, [pageNation]); + useEffect(() => { + if (typeof rainTableIndex === 'number' && rainTableIndex >= 0) { + cellClick(rainTableIndex); + setResetPageNo(true); + } + }, [rainTableIndex]); + + return ( <> @@ -157,6 +167,8 @@ export default function Home() { cellClick(val); }} onPageChange={setPageNation} + index={rainTableIndex} + resetPageNo={resetPageNo} > {/* */} diff --git a/apps/wr/app/store/ruseFcltMng/fcltReg/rainReg/index.tsx b/apps/wr/app/store/ruseFcltMng/fcltReg/rainReg/index.tsx index 565909a57..e87f54a39 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltReg/rainReg/index.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltReg/rainReg/index.tsx @@ -88,6 +88,7 @@ export type rainFacState = { upHeadList: TableUpperProps[]; rainRes: customRainBdst[]; rainResCount: number; + rainTableIndex?: number; }; }; type rainFacSActions = { @@ -96,6 +97,7 @@ type rainFacSActions = { rainSearch: (txt: string, pageNation: number, code: string) => void; rainBdstReg: (data: customRainBdst, code: string | number) => void; rainBdstUpdate: (data: customRainBdst, code: string | number) => void; + ResetRainTableIndex:(index:number)=>void; }; export type rainFacType = rainFacState & rainFacSActions; @@ -105,6 +107,7 @@ export const rainFacStateExport: rainFacState = { rainRes: rainRes, rainResCount: 1, upHeadList: upHeadList, + rainTableIndex: undefined, }, }; @@ -229,7 +232,6 @@ export const rainFacActionsExport: (set: any) => rainFacSActions = ( if (res.status === 200) { if (data.chgBuilding.length > 0) { const chPK = data?.bdstInfoSn; - console.log("chPK", chPK); const makeCh = data.chgBuilding.map((item: chgBuilding) => ({ ...item, bdstInfoSn: chPK, @@ -263,5 +265,19 @@ export const rainFacActionsExport: (set: any) => rainFacSActions = ( } finally { } }, + ResetRainTableIndex: (index: number) => { + // 1) 동일값도 '변경'으로 느끼게 잠깐 -1 + set((state: rainFacState) => ({ + ...state, + rain: { ...state.rain, rainTableIndex: -1 }, + })); + // 2) 다음 마이크로태스크에서 진짜 값 복구 + Promise.resolve().then(() => { + set((state: rainFacState) => ({ + ...state, + rain: { ...state.rain, rainTableIndex: index }, + })); + }); + }, }; }; diff --git a/apps/wr/components/ui/form/fcltReg/rainReg/rainRegForm.tsx b/apps/wr/components/ui/form/fcltReg/rainReg/rainRegForm.tsx index 72affedc9..fd61d9c29 100644 --- a/apps/wr/components/ui/form/fcltReg/rainReg/rainRegForm.tsx +++ b/apps/wr/components/ui/form/fcltReg/rainReg/rainRegForm.tsx @@ -38,10 +38,11 @@ export default function RainRegForm({ readonly?: boolean; isMap?: boolean; }) { - const { code, rainBdstReg, rainBdstUpdate } = useWrStore( + const { auth,code, rainBdstReg, rainBdstUpdate ,ResetRainTableIndex} = useWrStore( (state) => state ); const { rainFcltCd } = code; + const {laeSeCd } = auth; const form = useForm>({ resolver: zodResolver(rainZod), // defaultValues: defaultValues, @@ -57,7 +58,7 @@ export default function RainRegForm({ // const [divStyle, setDivStyle] = useState("h-[53vh]"); useEffect(() => { if(isMap=== true){ - + } }, [isMap]); @@ -128,10 +129,10 @@ export default function RainRegForm({ console.log("form errors:", form.formState.errors); }, [form.formState.errors]); - const onSubmit = (values: z.infer) => { + const onSubmit = async(values: z.infer) => { if (isModal) { const data = regCtpvCd ? regCtpvCd : regSggcd ? regSggcd : "noCd"; - + if (data === "noCd") { toast.error("시도/시군구 코드를 선택해야합니다."); return; @@ -143,7 +144,8 @@ export default function RainRegForm({ confirmToast(t('isInsertMsg'), handleConfirm); } else { const handleConfirm = async () => { - rainBdstUpdate(values, "41"); + await rainBdstUpdate(values, laeSeCd); + ResetRainTableIndex(0) }; confirmToast(t('isUpdateMsg'), handleConfirm); }