From e6f233025c0e511bb472bb75540d50381b58db48 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Wed, 21 Dec 2022 21:36:58 -0400 Subject: gallery conditions for tracks without unique art --- src/data/things/track.js | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'src/data') diff --git a/src/data/things/track.js b/src/data/things/track.js index 0842bf23..880f65fe 100644 --- a/src/data/things/track.js +++ b/src/data/things/track.js @@ -187,6 +187,26 @@ export class Track extends Thing { }, }, + hasUniqueCoverArt: { + flags: {expose: true}, + + expose: { + dependencies: ['albumData', 'coverArtistContribsByRef', 'hasCoverArt'], + compute: ({ + albumData, + coverArtistContribsByRef, + hasCoverArt, + [Track.instance]: track, + }) => + Track.hasUniqueCoverArt( + track, + albumData, + coverArtistContribsByRef, + hasCoverArt + ), + }, + }, + originalReleaseTrack: Thing.common.dynamicThingFromSingleReference( 'originalReleaseTrackByRef', 'trackData', @@ -324,6 +344,26 @@ export class Track extends Thing { true ); + // Now this is a doozy! + static hasUniqueCoverArt( + track, + albumData, + coverArtistContribsByRef, + hasCoverArt + ) { + if (coverArtistContribsByRef?.length > 0) { + return true; + } else if (coverArtistContribsByRef) { + return false; + } else if (hasCoverArt === false) { + return false; + } else if (Track.findAlbum(track, albumData)?.hasTrackArt) { + return true; + } else { + return false; + } + } + [inspect.custom]() { const base = Thing.prototype[inspect.custom].apply(this); -- cgit 1.3.0-6-gf8a5