« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data/things/album.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/data/things/album.js')
-rw-r--r--src/data/things/album.js20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/data/things/album.js b/src/data/things/album.js
index 303c64b6..af3c6a92 100644
--- a/src/data/things/album.js
+++ b/src/data/things/album.js
@@ -106,7 +106,10 @@ export class Album extends Thing {
     dateAddedToWiki: simpleDate(),
 
     coverArtDate: [
-      // TODO: Why does this fall back, but Track.coverArtDate doesn't?
+      // ~~TODO: Why does this fall back, but Track.coverArtDate doesn't?~~
+      // TODO: OK so it's because tracks don't *store* dates just like that.
+      // Really instead of fallback being a flag, it should be a date value,
+      // if this option is worth existing at all.
       withCoverArtDate({
         from: input.updateValue({
           validate: isDate,
@@ -242,7 +245,20 @@ export class Album extends Thing {
         value: input.value([]),
       }),
 
-      referencedArtworkList(),
+      {
+        dependencies: ['coverArtDate', 'date'],
+        compute: (continuation, {
+          coverArtDate,
+          date,
+        }) => continuation({
+          ['#date']:
+            coverArtDate ?? date,
+        }),
+      },
+
+      referencedArtworkList({
+        date: '#date',
+      }),
     ],
 
     // Update only