From e1db565e4059a2e26e2c0e56a6f3f3ae738ea2b7 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Thu, 2 Mar 2023 20:46:16 -0400 Subject: per-track color support --- src/data/things/track.js | 14 +++++++++----- src/data/yaml.js | 1 + 2 files changed, 10 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/data/things/track.js b/src/data/things/track.js index 0751b2d..1c2013a 100644 --- a/src/data/things/track.js +++ b/src/data/things/track.js @@ -16,6 +16,7 @@ export class Track extends Thing { validators: { isBoolean, + isColor, isDate, isDuration, isFileExtension, @@ -145,15 +146,18 @@ export class Track extends Thing { }, color: { - flags: {expose: true}, + flags: {update: true, expose: true}, + + update: {validate: isColor}, expose: { dependencies: ['albumData'], - compute: ({albumData, [Track.instance]: track}) => - Track.findAlbum(track, albumData) - ?.trackSections.find(({tracks}) => tracks.includes(track)) - ?.color ?? null, + transform: (color, {albumData, [Track.instance]: track}) => + color ?? + Track.findAlbum(track, albumData) + ?.trackSections.find(({tracks}) => tracks.includes(track)) + ?.color ?? null, }, }, diff --git a/src/data/yaml.js b/src/data/yaml.js index 6b5156e..1b1195e 100644 --- a/src/data/yaml.js +++ b/src/data/yaml.js @@ -256,6 +256,7 @@ export const processTrackDocument = makeProcessDocument(T.Track, { name: 'Track', directory: 'Directory', duration: 'Duration', + color: 'Color', urls: 'URLs', dateFirstReleased: 'Date First Released', -- cgit 1.3.0-6-gf8a5