Para contextualizar, tengo un viaje que tiene como atributos puntos de interés que se le asignan y están ordenados por un campo de rango que nos permite mostrarlos en el orden deseado.
Tengo un problema, configuré un sistema de arrastrar y soltar en mi tabla de puntos de interés, pero cuando muevo una celda, puede tener el mismo rango que la celda a la que se mueve. Esto no nos es posible, quisiera saber si hay alguna solución para que sea imposible que dos celdas tengan el mismo rango o que se actualicen 2 rangos con el mismo valor.
Ver la pantalla para la tabla:
Mi código para actualizar un rango:
const { mutate: changeRank, isSuccess: changeRankSuccess } = useMutation( async ({ pointTrip, rank }) => { let url = `http://localhost:443/api/pointTrip/${pointTrip}`; await axios .put(url, { rank }) .then((res) => {}) .catch((err) => { console.log(err); }); }, { onSuccess: () => { queryClient.invalidateQueries(queryKey); }, }Mi código para cambiar el rango en el extremo de arrastre:
const handleDragEnd = (result) => { if(!result.destination) { return; } let tempPoi = [...trip.pointsOfInterest]; let [selectedRow] = tempPoi.splice(result.source.index, 1); changeRank({pointTrip: selectedRow.PointTrip.id, rank: result.destination.index + 1});Me puedes ayudar ?