diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2025-03-22 15:16:16 -0300 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2025-03-22 15:16:16 -0300 |
commit | 152d706bb3d7a6a03e0dd0d74e7de6bfe5982b59 (patch) | |
tree | c4c365317b75b5204d22693df3af454c49536a56 | |
parent | 06d65e2ef80ff5564cbce8ffdc854dc46181b3e5 (diff) |
data: Contribution: divide previous/next by dated/dateless
-rw-r--r-- | src/data/composite/things/contribution/withContainingReverseContributionList.js | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/src/data/composite/things/contribution/withContainingReverseContributionList.js b/src/data/composite/things/contribution/withContainingReverseContributionList.js index 56704c8b..dc990ca5 100644 --- a/src/data/composite/things/contribution/withContainingReverseContributionList.js +++ b/src/data/composite/things/contribution/withContainingReverseContributionList.js @@ -1,8 +1,11 @@ -// Get the artist's contribution list containing this property. +// Get the artist's contribution list containing this property. Although that +// list literally includes both dated and un-dated contributions, here the list +// is filtered including only the matching subset (has dates vs dateless). import {input, templateCompositeFrom} from '#composite'; -import {raiseOutputWithoutDependency} from '#composite/control-flow'; +import {raiseOutputWithoutDependency, withResultOfAvailabilityCheck} + from '#composite/control-flow'; import {withPropertyFromObject} from '#composite/data'; import withContributionArtist from './withContributionArtist.js'; @@ -34,7 +37,24 @@ export default templateCompositeFrom({ object: '#artist', property: input('artistProperty'), }).outputs({ - ['#value']: '#containingReverseContributionList', + ['#value']: '#list', }), + + withResultOfAvailabilityCheck({ + from: 'date', + }).outputs({ + ['#availability']: '#hasDate', + }), + + { + dependencies: ['#hasDate', '#list'], + compute: (continuation, { + ['#hasDate']: hasDate, + ['#list']: list, + }) => continuation({ + ['#containingReverseContributionList']: + list.filter(contribution => !!contribution.date === hasDate), + }), + }, ], }); |