diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2023-04-15 19:50:02 -0300 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2023-04-15 19:50:02 -0300 |
commit | ed422988035ce2e67464c544267adce4df4f5f35 (patch) | |
tree | 3e89b89301cb5bab4e9558c9f9ad6343bec850e1 /src/content/dependencies/generateTrackInfoPage.js | |
parent | 60e85440588fa9c52ae2d856c1e53126935222a4 (diff) |
content: generateChronologyLinks, generatePreviousNextLinks
Diffstat (limited to 'src/content/dependencies/generateTrackInfoPage.js')
-rw-r--r-- | src/content/dependencies/generateTrackInfoPage.js | 51 |
1 files changed, 49 insertions, 2 deletions
diff --git a/src/content/dependencies/generateTrackInfoPage.js b/src/content/dependencies/generateTrackInfoPage.js index acf8461b..570aac9d 100644 --- a/src/content/dependencies/generateTrackInfoPage.js +++ b/src/content/dependencies/generateTrackInfoPage.js @@ -1,3 +1,6 @@ +import getChronologyRelations from '../util/getChronologyRelations.js'; +import {sortAlbumsTracksChronologically} from '../../util/wiki-data.js'; + export default { contentDependencies: [ 'generateTrackInfoPageContent', @@ -8,6 +11,7 @@ export default { 'generatePageLayout', 'linkAlbum', 'linkTrack', + 'generateChronologyLinks', ], extraDependencies: ['language'], @@ -15,6 +19,37 @@ export default { relations(relation, track) { return { layout: relation('generatePageLayout'), + chronologyLinks: relation('generateChronologyLinks'), + + artistChronologyContributions: getChronologyRelations(track, { + contributions: [...track.artistContribs, ...track.contributorContribs], + + linkArtist: artist => relation('linkArtist', artist), + linkThing: track => relation('linkTrack', track), + + getThings: artist => + sortAlbumsTracksChronologically([ + ...artist.tracksAsArtist, + ...artist.tracksAsContributor, + ]), + }), + + coverArtistChronologyContributions: getChronologyRelations(track, { + contributions: track.coverArtistContribs, + + linkArtist: artist => relation('linkArtist', artist), + + linkThing: trackOrAlbum => + (trackOrAlbum.album + ? relation('linkTrack', trackOrAlbum) + : relation('linkAlbum', trackOrAlbum)), + + getThings: artist => + sortAlbumsTracksChronologically([ + ...artist.albumsAsCoverArtist, + ...artist.tracksAsCoverArtist, + ]), + }), albumLink: relation('linkAlbum', track.album), trackLink: relation('linkTrack', track), @@ -67,14 +102,26 @@ export default { }, ], - navContent: '(Chronology links here)', - navBottomRowContent: relations.albumNavLinks.slots({ showTrackNavigation: true, showExtraLinks: false, }), + navContent: + relations.chronologyLinks.slots({ + chronologyInfoSets: [ + { + headingString: 'misc.chronology.heading.track', + contributions: relations.artistChronologyContributions, + }, + { + headingString: 'misc.chronology.heading.coverArt', + contributions: relations.coverArtistChronologyContributions, + }, + ], + }), + ...relations.sidebar, }); }, |