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

86 lines
2.1 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 makeSelectCustomFieldGroupById = () =>
createSelector(
orm,
(_, id) => id,
({ CustomFieldGroup }, id) => {
const customFieldGroupModel = CustomFieldGroup.withId(id);
if (!customFieldGroupModel) {
return customFieldGroupModel;
}
return {
...customFieldGroupModel.ref,
name: customFieldGroupModel.name || customFieldGroupModel.baseCustomFieldGroup.name,
isPersisted: !isLocalId(customFieldGroupModel.id),
};
},
);
export const selectCustomFieldGroupById = makeSelectCustomFieldGroupById();
export const makeSelectCustomFieldIdsByGroupId = () =>
createSelector(
orm,
(_, id) => id,
({ CustomFieldGroup }, id) => {
if (!id) {
return id;
}
const customFieldGroupModel = CustomFieldGroup.withId(id);
if (!customFieldGroupModel) {
return customFieldGroupModel;
}
return customFieldGroupModel
.getCustomFieldsModelArray()
.map((customFieldModel) => customFieldModel.id);
},
);
export const selectCustomFieldIdsByGroupId = makeSelectCustomFieldIdsByGroupId();
export const makeSelectCustomFieldsByGroupId = () =>
createSelector(
orm,
(_, id) => id,
({ CustomFieldGroup }, id) => {
if (!id) {
return id;
}
const customFieldGroupModel = CustomFieldGroup.withId(id);
if (!customFieldGroupModel) {
return customFieldGroupModel;
}
return customFieldGroupModel
.getCustomFieldsModelArray()
.map((customFieldModel) => customFieldModel.ref);
},
);
export const selectCustomFieldsByGroupId = makeSelectCustomFieldsByGroupId();
export default {
makeSelectCustomFieldGroupById,
selectCustomFieldGroupById,
makeSelectCustomFieldIdsByGroupId,
selectCustomFieldIdsByGroupId,
makeSelectCustomFieldsByGroupId,
selectCustomFieldsByGroupId,
};