Я использую
const sortable = useMemo(() => Object.values(data).sort((a,b) => a.position - b.position))
const moveRecord = (dragIndex, hoverIndex) => {
const dragRecord = sortable[dragIndex];
const hoverRecord = sortable[hoverIndex];
dragRecord.position = hoverIndex + 1;
hoverRecord.position = dragIndex + 1;
dispatchSortableUpdate({ id: dragRecord.id, data: dragRecord });
dispatchSortableUpdate({ id: hoverRecord.id, data: hoverRecord });
}
const sortableUpdate = ({ id, data }) => ({
type: SORTABLE_UPDATE,
payload: {
id,
data,
},
meta: {
resource: 'xxx',
fetchResponse: UPDATE,
fetchStatus: FETCH_END,
},
});