diff --git a/apps/as/src/pages/instl-sncn/lib/form-data-mapper.ts b/apps/as/src/pages/instl-sncn/lib/form-data-mapper.ts index 777229093..ece716bb3 100644 --- a/apps/as/src/pages/instl-sncn/lib/form-data-mapper.ts +++ b/apps/as/src/pages/instl-sncn/lib/form-data-mapper.ts @@ -49,8 +49,8 @@ export function mapDetailToFormData(data: InstlSncnMngDetResponse): CnfmRegistFo envoSeComCd: detDto.envoSeComCd, prgrsSttsComCd: detDto.prgrsSttsComCd, atchFileGroupId: detDto.atchFileGroupId ?? "", - rtlztnFcltSeComCd: detDto.rtlztnFcltSeComCd, - rtlztnUsgSeComCd: detDto.rtlztnUsgSeComCd, + rtlztnFcltSeComCd: detDto.rtlztnFcltSeComCd ?? "", + rtlztnUsgSeComCd: detDto.rtlztnUsgSeComCd ?? "", envoSeCdNm: detDto.envoSeCdNm, sncnSeCdNm: detDto.sncnSeCdNm, taskSeCdNm: detDto.taskSeCdNm, diff --git a/apps/as/src/pages/instl-sncn/ui/instl-edit-page.tsx b/apps/as/src/pages/instl-sncn/ui/instl-edit-page.tsx index 2ba751435..01d7dc819 100644 --- a/apps/as/src/pages/instl-sncn/ui/instl-edit-page.tsx +++ b/apps/as/src/pages/instl-sncn/ui/instl-edit-page.tsx @@ -15,7 +15,7 @@ function InstlEditPage({ id }: InstlEditPageProps) { return
수정 대상을 찾을 수 없습니다.
; } - return ; + return ; } export { InstlEditPage }; diff --git a/apps/as/src/pages/instl-sncn/ui/instl-form-page.tsx b/apps/as/src/pages/instl-sncn/ui/instl-form-page.tsx index 9973648fa..ee21c6341 100644 --- a/apps/as/src/pages/instl-sncn/ui/instl-form-page.tsx +++ b/apps/as/src/pages/instl-sncn/ui/instl-form-page.tsx @@ -5,9 +5,14 @@ import { FormProvider, useForm } from "react-hook-form"; import { useRouter } from "next/navigation"; import { zodResolver } from "@hookform/resolvers/zod"; +import { useQueryClient } from "@tanstack/react-query"; import { useAlertStore, useUserStore } from "@/shared/lib"; -import { type InstlSncnMngDetResponse, instlSncnService } from "@/entities/instl-sncn"; +import { + instlSncnKeys, + type InstlSncnMngDetResponse, + instlSncnService, +} from "@/entities/instl-sncn"; import { Button } from "@common/components"; import { @@ -26,12 +31,14 @@ import { ContactInfoFormSection } from "./sections/contact-info-form-section"; import { PrivacyConsentSection } from "./sections/privacy-consent-section"; interface InstlFormPageProps { + id?: string; mode: "create" | "edit"; initialData?: InstlSncnMngDetResponse; taskSeComCd?: string[]; } -function InstlFormPage({ mode, initialData, taskSeComCd }: InstlFormPageProps) { +function InstlFormPage({ id, mode, initialData, taskSeComCd }: InstlFormPageProps) { + const queryClient = useQueryClient(); const router = useRouter(); const userInfo = useUserStore((state) => state.userInfo); const alert = useAlertStore((state) => state.setMessage); @@ -70,11 +77,12 @@ function InstlFormPage({ mode, initialData, taskSeComCd }: InstlFormPageProps) { const instlSncnDocNo = await instlSncnService.saveApply(payload); - alert(isEditMode ? "수정되었습니다." : "저장되었습니다."); + alert("저장되었습니다."); router.push(`/instl-sncn/${instlSncnDocNo}`); + if (isEditMode && id) queryClient.invalidateQueries({ queryKey: instlSncnKeys.detail(id) }); } catch (error) { - console.error(isEditMode ? "수정 실패:" : "저장 실패:", error); - alert(isEditMode ? "수정 중 오류가 발생했습니다." : "저장 중 오류가 발생했습니다."); + console.error("저장 실패:", error); + alert("저장 중 오류가 발생했습니다."); } finally { setIsSubmitting(false); } @@ -108,7 +116,7 @@ function InstlFormPage({ mode, initialData, taskSeComCd }: InstlFormPageProps) { 목록