@@ -4,105 +4,50 @@ import { CustomBtn } from "../button/CustomButton";
44import { toast } from "react-toastify" ;
55
66interface DeleteModalProps {
7- isDeleteModalOpen : boolean ;
8- setIsDeleteModalOpen : ( open : boolean ) => void ;
9- isConfirmDeleteModalOpen : boolean ;
10- setIsConfirmDeleteModalOpen : ( open : boolean ) => void ;
11- selectedTitle : string | null ;
12- selectedCreatedByMe : boolean | null ;
13- handleDelete : ( ) => void ;
14- handleLeave : ( ) => void ;
7+ isOpen : boolean ;
8+ title ?: string ;
9+ description ?: string ;
10+ onConfirm : ( ) => void ;
11+ onCancel : ( ) => void ;
1512}
1613
1714export const DeleteModal : React . FC < DeleteModalProps > = ( {
18- isDeleteModalOpen,
19- setIsDeleteModalOpen,
20- isConfirmDeleteModalOpen,
21- setIsConfirmDeleteModalOpen,
22- selectedTitle,
23- selectedCreatedByMe,
24- handleDelete,
25- handleLeave,
15+ isOpen,
16+ title = "이 항목" ,
17+ description,
18+ onConfirm,
19+ onCancel,
2620} ) => {
2721 return (
2822 < >
2923 < Modal
3024 width = "sm:w-[320px] w-[260px]"
3125 height = "sm:h-[190px] h-[160px]"
32- isOpen = { isDeleteModalOpen }
33- onClose = { ( ) => setIsDeleteModalOpen ( false ) }
26+ isOpen = { isOpen }
27+ onClose = { onCancel }
3428 className = "flex items-center justify-center text-center"
3529 >
36- < div className = "flex flex-col items-center gap-1 text-center min-h-[60px ]" >
37- < div className = "text-[var(--primary)] font-medium sm:text-[18px] text-[16px]" >
38- { selectedTitle }
39- </ div >
40- < div className = "text-black3 font-medium sm:text-[18px] text-[16px]" >
41- { selectedCreatedByMe
42- ? "대시보드를 삭제하시겠습니까?"
43- : "대시보드에서 나가시겠습니까?" }
44- </ div >
30+ < div className = "flex flex-col items-center gap-2 text-center sm: min-h-[40px] min-h-[30px ]" >
31+ < span className = "text-black3 font-medium sm:text-[18px] text-[16px]" >
32+ { title } 삭제하시겠습니까?
33+ </ span >
34+ { description && (
35+ < span className = "text-black3 font-medium text-[16px]" >
36+ { description }
37+ </ span >
38+ ) }
4539 </ div >
46-
47- < div className = "flex items-center justify-center gap-2" >
48- < CustomBtn
49- onClick = { ( ) => setIsDeleteModalOpen ( false ) }
50- className = "cursor-pointer border px-3 py-1 rounded-md
51- sm:w-[100px] sm:h-[40px] w-[84px] h-[32px]
52- text-[var(--primary)] border-[var(--color-gray3)]"
53- >
54- 취소
55- </ CustomBtn >
56- < CustomBtn
57- onClick = { ( ) => {
58- if ( selectedCreatedByMe ) {
59- setIsDeleteModalOpen ( false ) ;
60- setIsConfirmDeleteModalOpen ( true ) ; // 재확인 모달 오픈
61- } else {
62- handleLeave ( ) ; // 탈퇴일 때는 바로 닫힘
63- toast . error ( "현재 탈퇴 기능이 준비 중입니다." ) ;
64- }
65- } }
66- className = "cursor-pointer bg-[var(--primary)] px-3 py-1 rounded-md
67- sm:w-[100px] sm:h-[40px] w-[84px] h-[32px]
68- text-white"
69- >
70- 확인
71- </ CustomBtn >
72- </ div >
73- </ Modal >
74-
75- < Modal
76- width = "sm:w-[320px] w-[260px]"
77- height = "sm:h-[190px] h-[160px]"
78- isOpen = { isConfirmDeleteModalOpen }
79- onClose = { ( ) => setIsConfirmDeleteModalOpen ( false ) }
80- className = "flex items-center justify-center text-center"
81- >
82- < div className = "flex flex-col items-center gap-1 text-center min-h-[60px]" >
83- < div className = "text-red-400 font-medium sm:text-[18px] text-[16px]" >
84- 삭제 시 복구할 수 없습니다.
85- </ div >
86- < div className = "text-black3 font-medium sm:text-[18px] text-[16px]" >
87- 정말 삭제하시겠습니까?
88- </ div >
89- </ div >
90-
9140 < div className = "flex items-center justify-center gap-2" >
9241 < CustomBtn
93- onClick = { ( ) => setIsConfirmDeleteModalOpen ( false ) }
42+ onClick = { onCancel }
9443 className = "cursor-pointer border px-3 py-1 rounded-md
9544 sm:w-[100px] sm:h-[40px] w-[84px] h-[32px]
9645 text-[var(--primary)] border-[var(--color-gray3)]"
9746 >
9847 취소
9948 </ CustomBtn >
10049 < CustomBtn
101- onClick = { ( ) => {
102- setIsConfirmDeleteModalOpen ( false ) ;
103- handleDelete ( ) ; // 진짜 삭제 실행
104- toast . success ( "대시보드가 삭제되었습니다." ) ;
105- } }
50+ onClick = { onConfirm }
10651 className = "cursor-pointer bg-[var(--primary)] px-3 py-1 rounded-md
10752 sm:w-[100px] sm:h-[40px] w-[84px] h-[32px]
10853 text-white"
0 commit comments