« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/data/composite/things/track/withMainReleaseTrack.js31
1 files changed, 29 insertions, 2 deletions
diff --git a/src/data/composite/things/track/withMainReleaseTrack.js b/src/data/composite/things/track/withMainReleaseTrack.js
index e498582d..6371e895 100644
--- a/src/data/composite/things/track/withMainReleaseTrack.js
+++ b/src/data/composite/things/track/withMainReleaseTrack.js
@@ -8,8 +8,11 @@ import {input, templateCompositeFrom} from '#composite';
 import {onlyItem} from '#sugar';
 import {getKebabCase} from '#wiki-data';
 
-import {exitWithoutDependency, withResultOfAvailabilityCheck}
-  from '#composite/control-flow';
+import {
+  exitWithoutDependency,
+  withAvailabilityFilter,
+  withResultOfAvailabilityCheck,
+} from '#composite/control-flow';
 
 import {
   withFilteredList,
@@ -116,6 +119,30 @@ export default templateCompositeFrom({
 
     withPropertyFromList({
       list: '#mainRelease.tracks',
+      property: input.value('mainRelease'),
+      internal: input.value(true),
+    }),
+
+    withAvailabilityFilter({
+      from: '#mainRelease.tracks.mainRelease',
+    }),
+
+    withMappedList({
+      list: '#availabilityFilter',
+      map: input.value(item => !item),
+    }).outputs({
+      '#mappedList': '#availabilityFilter',
+    }),
+
+    withFilteredList({
+      list: '#mainRelease.tracks',
+      filter: '#availabilityFilter',
+    }).outputs({
+      '#filteredList': '#mainRelease.tracks',
+    }),
+
+    withPropertyFromList({
+      list: '#mainRelease.tracks',
       property: input.value('name'),
     }),