diff options
Diffstat (limited to 'src/data/things/track.js')
| -rw-r--r-- | src/data/things/track.js | 37 |
1 files changed, 31 insertions, 6 deletions
diff --git a/src/data/things/track.js b/src/data/things/track.js index 798f3ca3..8ae4864d 100644 --- a/src/data/things/track.js +++ b/src/data/things/track.js @@ -82,7 +82,6 @@ import { inheritContributionListFromMainRelease, inheritFromMainRelease, withAllReleases, - withCoverArtistContribs, withDirectorySuffix, withMainRelease, withMainReleaseTrack, @@ -350,13 +349,39 @@ export class Track extends Thing { ], coverArtistContribs: [ - withCoverArtistContribs({ - from: input.updateValue({ - validate: isContributionList, - }), + exitWithoutUniqueCoverArt({ + value: input.value([]), + }), + + withResolvedContribs({ + from: input.updateValue({validate: isContributionList}), + thingProperty: input.value('coverArtistContribs'), + artistProperty: input.value('trackCoverArtistContributions'), + date: 'coverArtDate', + }), + + exposeDependencyOrContinue({ + dependency: '#resolvedContribs', + mode: input.value('empty'), }), - exposeDependency({dependency: '#coverArtistContribs'}), + withPropertyFromAlbum({ + property: input.value('trackCoverArtistContribs'), + }), + + withRecontextualizedContributionList({ + list: '#album.trackCoverArtistContribs', + artistProperty: input.value('trackCoverArtistContributions'), + }), + + withRedatedContributionList({ + list: '#album.trackCoverArtistContribs', + date: 'coverArtDate', + }), + + exposeDependency({ + dependency: '#album.trackCoverArtistContribs', + }), ], coverArtDate: [ |