1
|
import { memo } from 'react'
|
2
|
import { DragDropContext, Droppable, OnDragEndResponder } from 'react-beautiful-dnd'
|
3
|
import { MapPoint } from '../Map/pathUtils'
|
4
|
import DraggableListItem from './DraggableListItem'
|
5
|
|
6
|
export interface DraggableListProps {
|
7
|
items: MapPoint[]
|
8
|
onDragEnd: OnDragEndResponder
|
9
|
}
|
10
|
|
11
|
const DraggableList = memo(({ items, onDragEnd }: DraggableListProps) => {
|
12
|
return (
|
13
|
<DragDropContext onDragEnd={onDragEnd}>
|
14
|
<Droppable droppableId="droppable-list">
|
15
|
{(provided) => (
|
16
|
<div ref={provided.innerRef} {...provided.droppableProps}>
|
17
|
{items.map((item, index) => (
|
18
|
<DraggableListItem
|
19
|
list={items}
|
20
|
index={index}
|
21
|
key={item.id}
|
22
|
/>
|
23
|
))}
|
24
|
{provided.placeholder}
|
25
|
</div>
|
26
|
)}
|
27
|
</Droppable>
|
28
|
</DragDropContext>
|
29
|
)
|
30
|
})
|
31
|
|
32
|
export default DraggableList
|