import { useEffect, useState } from 'react';
import { DragDropContext, Draggable, Droppable } from '@hello-pangea/dnd';
export function List({array, selectedId, onSelected, children}) {
const canSelect = selectedId !== undefined
const cursor = () => canSelect ? " cursor-pointer" : "";
const outline = (id) => canSelect && id === selectedId ? " outline outline-4 outline-black" : "";
return (
);
}
export function ReorderList({droppableId, array, setArray, children}) {
const [localArray, setLocalArray] = useState(array);
useEffect(() => {
setLocalArray(array);
}, [array])
function reorder(list, startIndex, endIndex) {
const result = Array.from(list);
const [removed] = result.splice(startIndex, 1);
result.splice(endIndex, 0, removed);
return result;
};
function onDragEnd(result) {
if (!result.destination) return;
if (result.destination.index === result.source.index) return;
const newArray = reorder(array, result.source.index, result.destination.index);
setLocalArray(newArray);
setArray(newArray);
}
return (
{provided => (
{localArray.map((elem, i) => (
-
{provided => (
)}
))}
{provided.placeholder}
)}
);
}