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

58 lines
1.5 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 makeSelectBaseCustomFieldGroupById = () =>
createSelector(
orm,
(_, id) => id,
({ BaseCustomFieldGroup }, id) => {
const baseCustomFieldGroupModel = BaseCustomFieldGroup.withId(id);
if (!baseCustomFieldGroupModel) {
return baseCustomFieldGroupModel;
}
return {
...baseCustomFieldGroupModel.ref,
isPersisted: !isLocalId(baseCustomFieldGroupModel.id),
};
},
);
export const selectBaseCustomFieldGroupById = makeSelectBaseCustomFieldGroupById();
export const makeSelectCustomFieldsByBaseGroupId = () =>
createSelector(
orm,
(_, id) => id,
({ BaseCustomFieldGroup }, id) => {
if (!id) {
return id;
}
const baseCustomFieldGroupModel = BaseCustomFieldGroup.withId(id);
if (!baseCustomFieldGroupModel) {
return baseCustomFieldGroupModel;
}
return baseCustomFieldGroupModel.getCustomFieldsQuerySet().toRefArray();
},
);
export const selectCustomFieldsByBaseGroupId = makeSelectCustomFieldsByBaseGroupId();
export default {
makeSelectBaseCustomFieldGroupById,
selectBaseCustomFieldGroupById,
makeSelectCustomFieldsByBaseGroupId,
selectCustomFieldsByBaseGroupId,
};