From 152d706bb3d7a6a03e0dd0d74e7de6bfe5982b59 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Sat, 22 Mar 2025 15:16:16 -0300 Subject: data: Contribution: divide previous/next by dated/dateless --- .../withContainingReverseContributionList.js | 26 +++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) (limited to 'src/data') 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), + }), + }, ], }); -- cgit 1.3.0-6-gf8a5