@@ -0,0 +1,85 @@
|
||||
/*!
|
||||
* 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,
|
||||
};
|
||||
Reference in New Issue
Block a user