Files
planka/client/src/selectors/task-lists.js
Maksim Eltyshev 2ee1166747 feat: Version 2
Closes #627, closes #1047
2025-05-10 02:09:06 +02:00

54 lines
1.2 KiB
JavaScript

/*!
* Copyright (c) 2024 PLANKA Software GmbH
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
*/
import { createSelector } from 'redux-orm';
import orm from '../orm';
import { isLocalId } from '../utils/local-id';
export const makeSelectTaskListById = () =>
createSelector(
orm,
(_, id) => id,
({ TaskList }, id) => {
const taskListModel = TaskList.withId(id);
if (!taskListModel) {
return taskListModel;
}
return {
...taskListModel.ref,
isPersisted: !isLocalId(taskListModel.id),
};
},
);
export const selectTaskListById = makeSelectTaskListById();
export const makeSelectTasksByTaskListId = () =>
createSelector(
orm,
(_, id) => id,
({ TaskList }, id) => {
const taskListModel = TaskList.withId(id);
if (!taskListModel) {
return taskListModel;
}
return taskListModel.getTasksQuerySet().toRefArray();
},
);
export const selectTasksByTaskListId = makeSelectTasksByTaskListId();
export default {
makeSelectTaskListById,
selectTaskListById,
makeSelectTasksByTaskListId,
selectTasksByTaskListId,
};