@@ -6,25 +6,16 @@ import MemberList from "@/components/table/member/MemberList";
66import SideMenu from "@/components/sideMenu/SideMenu" ;
77import InviteRecords from "@/components/table/InviteRecords" ;
88import Image from "next/image" ;
9- import axiosInstance from "@/api/axiosInstance" ;
10- import { apiRoutes } from "@/api/apiRoutes" ;
119import { getDashboards } from "@/api/dashboards" ;
12-
13- interface Dashboard {
14- id : number ;
15- title : string ;
16- color : string ;
17- userId : number ;
18- createdAt : string ;
19- updatedAt : string ;
20- createdByMe : boolean ;
21- }
10+ import DeleteDashboardModal from "@/components/modal/DeleteDashboardModal" ;
11+ import { DashboardType } from "@/types/task" ;
2212
2313export default function EditDashboard ( ) {
2414 const teamId = "13-4" ;
2515 const router = useRouter ( ) ;
26- const [ dashboardList , setDashboardList ] = useState < Dashboard [ ] > ( [ ] ) ;
16+ const [ dashboardList , setDashboardList ] = useState < DashboardType [ ] > ( [ ] ) ;
2717 const { dashboardId } = router . query ;
18+ const [ isModalOpen , setIsModalOpen ] = useState ( false ) ;
2819 const dashboardIdString = Array . isArray ( dashboardId )
2920 ? dashboardId [ 0 ]
3021 : dashboardId ;
@@ -34,19 +25,13 @@ export default function EditDashboard() {
3425 router . push ( `/dashboard/${ dashboardId } ` ) ;
3526 } ;
3627
37- /* 대시보드 삭제 */
38- const handleDelete = async ( ) => {
39- const dashboardIdNumber = Number ( dashboardId ) ;
40- if ( ! dashboardId ) return ;
41- try {
42- await axiosInstance . delete ( apiRoutes . DashboardDetail ( dashboardIdNumber ) ) ;
43- router . push ( `/mydashboard` ) ;
44- } catch ( error ) {
45- alert ( "대시보드 삭제에 실패하였습니다 ." ) ;
46- console . error ( "초대 실패:" , error ) ;
28+ /* 대시보드 삭제 모달 */
29+ const openModal = ( ) => {
30+ setIsModalOpen ( true ) ;
31+ } ;
4732
48- window . location . reload ( ) ;
49- }
33+ const closeModal = ( ) => {
34+ setIsModalOpen ( false ) ;
5035 } ;
5136
5237 /* SideMenu 값 불러오기 */
@@ -102,11 +87,19 @@ export default function EditDashboard() {
10287 </ div >
10388 < div className = "flex mt-15 sm:mt-0 ml-8" >
10489 < button
105- onClick = { handleDelete }
90+ onClick = { openModal }
10691 className = "text-base sm:text-lg cursor-pointer w-[320px] h-[62px] text-black3 rounded-[8px] border-[1px] border-[var(--color-gray3)] hover:scale-105 transition-transform duration-200"
10792 >
10893 대시보드 삭제하기
10994 </ button >
95+
96+ { isModalOpen && (
97+ < DeleteDashboardModal
98+ isOpen = { isModalOpen }
99+ onClose = { closeModal }
100+ dashboardid = { String ( dashboardId ) }
101+ />
102+ ) }
110103 </ div >
111104 </ div >
112105 </ div >
0 commit comments