1+ // Column.tsx
12import { useEffect , useState } from "react" ;
23import Image from "next/image" ;
34import { CardType } from "@/types/task" ;
45import Card from "./Card" ;
56import TodoModal from "@/components/modalInput/ToDoModal" ;
67import TodoButton from "@/components/button/TodoButton" ;
7- import ColumnManageModal from "@/components/columncard /ColumnManageModal" ;
8- import ColumnDeleteModal from "@/components/columncard /ColumnDeleteModal" ;
8+ import ColumnManageModal from "@/components/columnCard /ColumnManageModal" ;
9+ import ColumnDeleteModal from "@/components/columnCard /ColumnDeleteModal" ;
910import { updateColumn , deleteColumn } from "@/api/dashboards" ;
1011import { getDashboardMembers } from "@/api/card" ;
12+ import { MemberType } from "@/types/users" ;
1113
1214type ColumnProps = {
1315 columnId : number ;
@@ -41,7 +43,7 @@ export default function Column({
4143 dashboardId,
4244 } ) ;
4345
44- const parsed = result . map ( ( m : any ) => ( {
46+ const parsed = result . map ( ( m : MemberType ) => ( {
4547 id : m . id ,
4648 userId : m . userId ,
4749 nickname : m . nickname || m . email ,
@@ -85,7 +87,13 @@ export default function Column({
8587 } ;
8688
8789 return (
88- < div className = "w-[354px] flex flex-col rounded-md border-r border-gray-200 bg-gray-50 p-4 min-h-screen" >
90+ < div
91+ className = { `
92+ flex flex-col border-r border-gray-200 bg-gray-50 rounded-md p-4
93+ h-auto sm:m-h-screen
94+ max-h-[401px] sm:max-h-none
95+ ` }
96+ >
8997 { /* 칼럼 헤더 */ }
9098 < div className = "flex items-center justify-between" >
9199 < div className = "flex items-center gap-2" >
@@ -108,19 +116,27 @@ export default function Column({
108116 </ div >
109117
110118 { /* 카드 영역 */ }
111- < div className = "flex-1 pb-4 flex flex-col items-center gap-3" >
112- < div onClick = { ( ) => setIsTodoModalOpen ( true ) } >
119+ < div className = " flex-1 pb-4 flex flex-col items-center gap-3 " >
120+ < div onClick = { ( ) => setIsTodoModalOpen ( true ) } className = "mb-2" >
113121 < TodoButton />
114122 </ div >
115123
116- { tasks . map ( ( task ) => (
117- < Card
118- key = { task . id }
119- { ...task }
120- imageUrl = { task . imageUrl }
121- assignee = { task . assignee }
122- />
123- ) ) }
124+ { /* 카드 1개만 렌더링 (모바일), 전체 렌더링 (md 이상) */ }
125+ < div className = "w-full flex flex-wrap justify-center gap-3" >
126+ { tasks . map ( ( task , index ) => {
127+ const isMobile =
128+ typeof window !== "undefined" && window . innerWidth < 768 ;
129+ if ( isMobile && index > 0 ) return null ;
130+ return (
131+ < Card
132+ key = { task . id }
133+ { ...task }
134+ imageUrl = { task . imageUrl }
135+ assignee = { task . assignee }
136+ />
137+ ) ;
138+ } ) }
139+ </ div >
124140 </ div >
125141
126142 { /* Todo 모달 */ }
0 commit comments