summaryrefslogtreecommitdiff
path: root/lib/vendor-document-list/table/add-doc-dialog.tsx
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-06-01 13:52:21 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-06-01 13:52:21 +0000
commitbac0228d21b7195065e9cddcc327ae33659c7bcc (patch)
tree8f3016ae4533c8706d0c00a605d9b1d41968c2bc /lib/vendor-document-list/table/add-doc-dialog.tsx
parent2fdce8d7a57c792bba0ac36fa554dca9c9cc31e3 (diff)
(대표님) 20250601까지 작업사항
Diffstat (limited to 'lib/vendor-document-list/table/add-doc-dialog.tsx')
-rw-r--r--lib/vendor-document-list/table/add-doc-dialog.tsx28
1 files changed, 23 insertions, 5 deletions
diff --git a/lib/vendor-document-list/table/add-doc-dialog.tsx b/lib/vendor-document-list/table/add-doc-dialog.tsx
index b108721c..9bedc810 100644
--- a/lib/vendor-document-list/table/add-doc-dialog.tsx
+++ b/lib/vendor-document-list/table/add-doc-dialog.tsx
@@ -37,9 +37,10 @@ type CreateDocumentSchema = z.infer<typeof createDocumentSchema>;
interface AddDocumentListDialogProps {
projectType: "ship" | "plant";
contractId: number;
+ onSuccess?: () => void; // ✅ onSuccess 콜백 추가
}
-export function AddDocumentListDialog({ projectType, contractId }: AddDocumentListDialogProps) {
+export function AddDocumentListDialog({ projectType, contractId, onSuccess }: AddDocumentListDialogProps) {
const [open, setOpen] = React.useState(false);
const [isSubmitting, setIsSubmitting] = React.useState(false);
const router = useRouter();
@@ -98,8 +99,12 @@ export function AddDocumentListDialog({ projectType, contractId }: AddDocumentLi
} as CreateDocumentInputType);
if (result.success) {
- // 성공 시 캐시 무효화
- await invalidateDocumentCache(contractId);
+ // ✅ 캐시 무효화 시도 (에러가 나더라도 계속 진행)
+ try {
+ await invalidateDocumentCache(contractId);
+ } catch (cacheError) {
+ console.warn('Cache invalidation failed:', cacheError);
+ }
// 토스트 메시지
toast({
@@ -109,10 +114,23 @@ export function AddDocumentListDialog({ projectType, contractId }: AddDocumentLi
});
// 모달 닫기 및 폼 리셋
- form.reset();
+ form.reset({
+ docNumber: "",
+ title: "",
+ stages: defaultStages
+ });
setOpen(false);
- router.refresh();
+ // ✅ 성공 콜백 호출 (부모 컴포넌트에서 추가 처리 가능)
+ if (onSuccess) {
+ onSuccess();
+ }
+
+ // ✅ 라우터 새로고침 (약간의 지연을 두고 실행)
+ setTimeout(() => {
+ router.refresh();
+ }, 100);
+
} else {
// 실패 시 에러 토스트
toast({