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

47 lines
1.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';
export const makeSelectNotificationById = () =>
createSelector(
orm,
(_, id) => id,
({ Notification }, id) => {
const notificationModel = Notification.withId(id);
if (!notificationModel) {
return notificationModel;
}
return notificationModel.ref;
},
);
export const selectNotificationById = makeSelectNotificationById();
export const makeSelectNotificationIdsByCardId = () =>
createSelector(
orm,
(_, id) => id,
({ Notification }, id) =>
Notification.filter({
cardId: id,
})
.toRefArray()
.map((notification) => notification.id),
);
export const selectNotificationIdsByCardId = makeSelectNotificationIdsByCardId();
export default {
makeSelectNotificationById,
selectNotificationById,
makeSelectNotificationIdsByCardId,
selectNotificationIdsByCardId,
};