1+ // Column.tsx
12import { useEffect , useState , useRef } from "react" ;
23import Image from "next/image" ;
3- import { CardType , ColumnType } from "@/types/task" ;
4+ import { CardType } from "@/types/task" ;
45import TaskModal from "@/components/modalInput/TaskModal" ;
56import { TodoButton , ShortTodoButton } from "@/components/button/TodoButton" ;
67import ColumnDeleteModal from "@/components/columnCard/ColumnDeleteModal" ;
@@ -23,7 +24,6 @@ type ColumnProps = {
2324 createdByMe : boolean ;
2425 columnDelete : ( columnId : number ) => void ;
2526 fetchColumnsAndCards : ( ) => void ;
26- columns : ColumnType [ ] ;
2727} ;
2828
2929export default function Column ( {
@@ -34,7 +34,6 @@ export default function Column({
3434 createdByMe,
3535 columnDelete,
3636 fetchColumnsAndCards,
37- columns,
3837} : ColumnProps ) {
3938 const { canEditColumns } = useDashboardPermission ( dashboardId , createdByMe ) ;
4039
@@ -57,8 +56,10 @@ export default function Column({
5756
5857 const maxColumnTitleLength = 15 ;
5958
59+ // 카드리스트의 스크롤을 칼럼 영역으로 이동
6060 const scrollRef = useRef < HTMLDivElement | null > ( null ) ;
6161
62+ // ✅ 멤버 불러오기
6263 useEffect ( ( ) => {
6364 const fetchMembers = async ( ) => {
6465 try {
@@ -85,6 +86,7 @@ export default function Column({
8586 toast . error ( "칼럼 제목을 입력해 주세요." ) ;
8687 return ;
8788 }
89+ setIsColumnModalOpen ( false ) ;
8890
8991 try {
9092 const updated = await updateColumn ( { columnId, title : newTitle } ) ;
@@ -131,17 +133,23 @@ export default function Column({
131133 { /* 칼럼 헤더 */ }
132134 < div className = "shrink-0 mb-2" >
133135 < div className = "flex items-center justify-between" >
134- { /* 타이틀 + 개수 */ }
136+ { /* 왼쪽: 타이틀 + 카드 개수 */ }
135137 < div className = "flex items-center gap-2" >
136138 < Image src = "/svgs/ellipse.svg" alt = "circle" width = { 8 } height = { 8 } />
137- < h2 className = "text-black3 text-[16px] md:text-[18px] font-bold break-words sm:max-w-none max-w-[90px]" >
139+ < h2
140+ className = "text-black3 text-[16px] md:text-[18px] font-bold
141+ break-words sm:max-w-none max-w-[90px]"
142+ >
138143 { columnTitle }
139144 </ h2 >
140- < span className = "flex items-center justify-center leading-none w-[20px] h-[20px] bg-white text-[var(--primary)] font-14m rounded-[4px]" >
145+ < span
146+ className = "flex items-center justify-center leading-none
147+ w-[20px] h-[20px] bg-white text-[var(--primary)] font-14m rounded-[4px]"
148+ >
141149 { tasks . length }
142150 </ span >
143151 </ div >
144- { /* 버튼 */ }
152+ { /* 오른쪽: 생성 버튼 + 설정 버튼 */ }
145153 < div className = "flex items-center gap-2" >
146154 < div
147155 onClick = { ( ) => {
@@ -191,8 +199,9 @@ export default function Column({
191199 </ div >
192200 </ div >
193201
194- { /* 카드 리스트 */ }
202+ { /* 스크롤바 컨테이너 */ }
195203 < div className = "flex flex-col lg:pl-[21px] overflow-y-auto w-full lg:w-[357px] rounded-md bg-[#F5F2FC]" >
204+ { /* 카드 리스트 */ }
196205 < div
197206 className = "flex-1 overflow-y-auto overflow-x-hidden"
198207 style = { { scrollbarGutter : "stable" } }
@@ -208,7 +217,7 @@ export default function Column({
208217 </ div >
209218 </ div >
210219
211- { /* 카드 생성 */ }
220+ { /* 카드 생성 모달 */ }
212221 { isTaskModalOpen && (
213222 < TaskModal
214223 mode = "create"
@@ -217,18 +226,14 @@ export default function Column({
217226 dashboardId = { dashboardId }
218227 columnId = { columnId }
219228 members = { members }
220- columns = { columns }
221229 initialData = { {
222230 status : columnTitle ,
223231 } }
224- onSubmit = { ( ) => {
225- fetchColumnsAndCards ( ) ;
226- setIsTaskModalOpen ( false ) ;
227- } }
232+ onSubmit = { fetchColumnsAndCards }
228233 />
229234 ) }
230235
231- { /* 칼럼 수정 */ }
236+ { /* 칼럼 관리 모달 */ }
232237 { isColumnModalOpen && (
233238 < FormModal
234239 title = "칼럼 이름 수정"
@@ -260,25 +265,25 @@ export default function Column({
260265 />
261266 ) }
262267
268+ { /* 칼럼 삭제 확인 모달 */ }
263269 < ColumnDeleteModal
264270 isOpen = { isDeleteModalOpen }
265271 onClose = { ( ) => setIsDeleteModalOpen ( false ) }
266272 onDelete = { handleDeleteColumn }
267273 />
268274
269- { /* 카드 상세 */ }
275+ { /* 카드 상세 모달 */ }
270276 { isCardDetailModalOpen && selectedCard && (
271277 < CardDetailModal
272278 card = { selectedCard }
273279 currentUserId = { selectedCard . assignee . id }
274280 dashboardId = { dashboardId }
275- createdByMe = { createdByMe }
276281 onClose = { ( ) => {
277282 setIsCardDetailModalOpen ( false ) ;
278283 setSelectedCard ( null ) ;
279284 } }
280285 onChangeCard = { fetchColumnsAndCards }
281- columns = { columns }
286+ createdByMe = { createdByMe }
282287 />
283288 ) }
284289 </ div >
0 commit comments