import { useFavoriteRelays } from '@/providers/FavoriteRelaysProvider' import { closestCenter, DndContext, DragEndEvent, KeyboardSensor, PointerSensor, useSensor, useSensors } from '@dnd-kit/core' import { restrictToParentElement, restrictToVerticalAxis } from '@dnd-kit/modifiers' import { arrayMove, SortableContext, sortableKeyboardCoordinates, verticalListSortingStrategy } from '@dnd-kit/sortable' import { useTranslation } from 'react-i18next' import PullRelaySetsButton from './PullRelaySetsButton' import RelaySet from './RelaySet' export default function RelaySetList() { const { t } = useTranslation() const { relaySets, reorderRelaySets } = useFavoriteRelays() const sensors = useSensors( useSensor(PointerSensor), useSensor(KeyboardSensor, { coordinateGetter: sortableKeyboardCoordinates }) ) const handleDragEnd = (event: DragEndEvent) => { const { active, over } = event if (over && active.id !== over.id) { const oldIndex = relaySets.findIndex((item) => item.id === active.id) const newIndex = relaySets.findIndex((item) => item.id === over.id) const reorderedSets = arrayMove(relaySets, oldIndex, newIndex) reorderRelaySets(reorderedSets) } } return (