diff options
| -rw-r--r-- | src/content/dependencies/generateArtistInfoPageTracksChunkItem.js | 4 | ||||
| -rw-r--r-- | src/data/things/artist.js | 23 |
2 files changed, 25 insertions, 2 deletions
diff --git a/src/content/dependencies/generateArtistInfoPageTracksChunkItem.js b/src/content/dependencies/generateArtistInfoPageTracksChunkItem.js index bf334d75..b0d9d8e5 100644 --- a/src/content/dependencies/generateArtistInfoPageTracksChunkItem.js +++ b/src/content/dependencies/generateArtistInfoPageTracksChunkItem.js @@ -94,7 +94,9 @@ export default { trackListItem: relation('generateTrackListItem', query.track, - query.track.album.artistContribs), + (empty(query.track.album.artistContribs) + ? [artist.mockSimpleContribution] + : query.track.album.artistContribs)), rereleaseTooltip: (query.isLaterRelease diff --git a/src/data/things/artist.js b/src/data/things/artist.js index a2ed0b74..01eb2172 100644 --- a/src/data/things/artist.js +++ b/src/data/things/artist.js @@ -43,7 +43,7 @@ export class Artist extends Thing { 'avatarArtwork', // from inline fields ]; - static [Thing.getPropertyDescriptors] = () => ({ + static [Thing.getPropertyDescriptors] = ({Contribution}) => ({ // Update & expose name: name(V('Unnamed Artist')), @@ -78,6 +78,27 @@ export class Artist extends Thing { isArtist: exposeConstant(V(true)), + mockSimpleContribution: { + flags: {expose: true}, + expose: { + dependencies: ['directory', '_find'], + compute: ({directory, _find: find}) => + Object.assign(new Contribution, { + artist: 'artist:' + directory, + + // These nulls have no effect, they're only included + // here for clarity. + date: null, + thing: null, + annotation: null, + artistProperty: null, + thingProperty: null, + + find, + }), + }, + }, + trackArtistContributions: reverseReferenceList({ reverse: soupyReverse.input('trackArtistContributionsBy'), }), |