From ed422988035ce2e67464c544267adce4df4f5f35 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Sat, 15 Apr 2023 19:50:02 -0300 Subject: content: generateChronologyLinks, generatePreviousNextLinks --- src/content/dependencies/generateTrackInfoPage.js | 51 ++++++++++++++++++++++- 1 file changed, 49 insertions(+), 2 deletions(-) (limited to 'src/content/dependencies/generateTrackInfoPage.js') 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, }); }, -- cgit 1.3.0-6-gf8a5