feat: Add tasks reordering

Closes #50, closes #232
This commit is contained in:
Maksim Eltyshev
2022-07-21 11:31:05 +02:00
parent a6a836c9a0
commit f8f2d7345e
27 changed files with 341 additions and 94 deletions

View File

@@ -71,7 +71,7 @@ export const makeTasksByCardIdSelector = () =>
return cardModel;
}
return cardModel.tasks.toRefArray();
return cardModel.getOrderedTasksQuerySet().toRefArray();
},
);

View File

@@ -76,3 +76,19 @@ export const nextCardPositionSelector = createSelector(
return nextPosition(listModel.getOrderedFilteredCardsModelArray(), index, excludedId);
},
);
export const nextTaskPositionSelector = createSelector(
orm,
(_, cardId) => cardId,
(_, __, index) => index,
(_, __, ___, excludedId) => excludedId,
({ Card }, cardId, index, excludedId) => {
const cardModel = Card.withId(cardId);
if (!cardModel) {
return cardModel;
}
return nextPosition(cardModel.getOrderedTasksQuerySet().toRefArray(), index, excludedId);
},
);

View File

@@ -10,4 +10,5 @@ export * from './board';
export * from './board-membership';
export * from './list';
export * from './card';
export * from './task';
export * from './attachment';

View File

@@ -0,0 +1,20 @@
import { createSelector } from 'redux-orm';
import orm from '../orm';
export const makeTaskByIdSelector = () =>
createSelector(
orm,
(_, id) => id,
({ Task }, id) => {
const taskModel = Task.withId(id);
if (!taskModel) {
return taskModel;
}
return taskModel.ref;
},
);
export const taskByIdSelector = makeTaskByIdSelector();