Skip to content

Instantly share code, notes, and snippets.

@crazypixel
Created September 8, 2019 17:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save crazypixel/76b193522f01fb2284db7500168ea272 to your computer and use it in GitHub Desktop.
Save crazypixel/76b193522f01fb2284db7500168ea272 to your computer and use it in GitHub Desktop.
dnd hooks sortable
const handleDrag = useCallback(({translation, id}) => {
const delta = Math.round(translation.y / HEIGHT);
const index = state.order.indexOf(id);
const dragOrder = state.order.filter(index => index !== id);
if (!inRange(index + delta, 0, items.length)) {
return;
}
dragOrder.splice(index + delta, 0, id);
setState(state => ({
...state,
draggedIndex: id,
dragOrder
}));
}, [state.order, items.length]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment