1
0
Fork 0
mirror of https://github.com/plankanban/planka.git synced 2025-07-19 13:19:44 +02:00
planka/client/src/selectors/list.js

42 lines
885 B
JavaScript
Raw Normal View History

import { createSelector } from 'redux-orm';
import orm from '../orm';
import { isLocalId } from '../utils/local-id';
export const makeListByIdSelector = () =>
createSelector(
orm,
(_, id) => id,
({ List }, id) => {
const listModel = List.withId(id);
if (!listModel) {
return listModel;
}
return {
...listModel.ref,
isPersisted: !isLocalId(id),
};
},
);
export const listByIdSelector = makeListByIdSelector();
export const makeCardIdsByListIdSelector = () =>
createSelector(
orm,
(_, id) => id,
({ List }, id) => {
const listModel = List.withId(id);
if (!listModel) {
return listModel;
}
return listModel.getOrderedFilteredCardsModelArray().map((cardModel) => cardModel.id);
},
);
export const cardIdsByListIdSelector = makeCardIdsByListIdSelector();