11import { useEffect , useState , useRef } from "react" ;
2- import {
3- DndContext ,
4- closestCenter ,
5- PointerSensor ,
6- useSensor ,
7- useSensors ,
8- DragEndEvent ,
9- } from "@dnd-kit/core" ;
10- import {
11- SortableContext ,
12- verticalListSortingStrategy ,
13- arrayMove ,
14- } from "@dnd-kit/sortable" ;
152import { CardType } from "@/types/task" ;
163import { getCardsByColumn } from "@/api/card" ;
174import SortableCard from "@/components/columnCard/SortableCard" ;
@@ -34,12 +21,6 @@ export const CardList = ({
3421 const [ cards , setCards ] = useState < CardType [ ] > ( [ ] ) ;
3522 const observerRef = useRef < HTMLDivElement | null > ( null ) ;
3623
37- const sensors = useSensors (
38- useSensor ( PointerSensor , {
39- activationConstraint : { distance : 5 } ,
40- } )
41- ) ;
42-
4324 // 카드 목록 api 호출 (마감일 빠른 순 정렬)
4425 useEffect ( ( ) => {
4526 const fetchCards = async ( ) => {
@@ -60,7 +41,7 @@ export const CardList = ({
6041 fetchCards ( ) ;
6142 } , [ columnId , initialTasks ] ) ;
6243
63- // 스크롤 감지
44+ // 스크롤
6445 useEffect ( ( ) => {
6546 if ( ! scrollRoot ?. current || ! observerRef . current ) return ;
6647
@@ -82,36 +63,12 @@ export const CardList = ({
8263 } ;
8364 } , [ scrollRoot ] ) ;
8465
85- // 드래그 & 드롭
86- const handleDragEnd = ( event : DragEndEvent ) => {
87- const { active, over } = event ;
88-
89- if ( ! over || active . id === over . id ) return ;
90-
91- const oldIndex = cards . findIndex ( ( card ) => card . id === active . id ) ;
92- const newIndex = cards . findIndex ( ( card ) => card . id === over . id ) ;
93-
94- const newOrder = arrayMove ( cards , oldIndex , newIndex ) ;
95- setCards ( newOrder ) ;
96- } ;
97-
9866 return (
99- < DndContext
100- sensors = { sensors }
101- collisionDetection = { closestCenter }
102- onDragEnd = { handleDragEnd }
103- >
104- < SortableContext
105- items = { cards . map ( ( card ) => card . id ) }
106- strategy = { verticalListSortingStrategy }
107- >
108- < div className = "w-full grid grid-cols-1 gap-3" >
109- { cards . map ( ( card ) => (
110- < SortableCard key = { card . id } card = { card } onClick = { onCardClick } />
111- ) ) }
112- < div ref = { observerRef } className = "h-[1px] bg-transparent" />
113- </ div >
114- </ SortableContext >
115- </ DndContext >
67+ < div className = "w-full grid grid-cols-1 gap-3" >
68+ { cards . map ( ( card ) => (
69+ < SortableCard key = { card . id } card = { card } onClick = { onCardClick } />
70+ ) ) }
71+ < div ref = { observerRef } className = "h-[1px] bg-transparent" />
72+ </ div >
11673 ) ;
11774} ;
0 commit comments