Utils#calculateIndex re-uses the logic of Utils#calculateIndexData

- nearly the same implementation, so use common code base
This commit is contained in:
Martin Filser 2022-05-17 00:14:10 +02:00
parent 1a71abbc1d
commit c10f7b6134

View file

@ -356,34 +356,16 @@ Utils = {
// Determine the new sort index
calculateIndex(prevCardDomElement, nextCardDomElement, nCards = 1) {
let base, increment;
// If we drop the card to an empty column
if (!prevCardDomElement && !nextCardDomElement) {
base = 0;
increment = 1;
// If we drop the card in the first position
} else if (!prevCardDomElement) {
base = Blaze.getData(nextCardDomElement).sort - 1;
increment = -1;
// If we drop the card in the last position
} else if (!nextCardDomElement) {
base = Blaze.getData(prevCardDomElement).sort + 1;
increment = 1;
let prevData = null;
let nextData = null;
if (prevCardDomElement) {
prevData = Blaze.getData(prevCardDomElement)
}
// In the general case take the average of the previous and next element
// sort indexes.
else {
const prevSortIndex = Blaze.getData(prevCardDomElement).sort;
const nextSortIndex = Blaze.getData(nextCardDomElement).sort;
increment = (nextSortIndex - prevSortIndex) / (nCards + 1);
base = prevSortIndex + increment;
if (nextCardDomElement) {
nextData = Blaze.getData(nextCardDomElement);
}
// XXX Return a generator that yield values instead of a base with a
// increment number.
return {
base,
increment,
};
const ret = Utils.calculateIndexData(prevData, nextData, nCards);
return ret;
},
manageCustomUI() {