From 2d8622f8b31df0367ded52a45d7362abfe6d9a7c Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Thu, 23 Oct 2025 18:17:33 -0300 Subject: content: generateNearbyTrackList makes generateTrackList more general --- .../dependencies/generateNearbyTrackList.js | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/content/dependencies/generateNearbyTrackList.js (limited to 'src/content/dependencies/generateNearbyTrackList.js') diff --git a/src/content/dependencies/generateNearbyTrackList.js b/src/content/dependencies/generateNearbyTrackList.js new file mode 100644 index 00000000..6771285a --- /dev/null +++ b/src/content/dependencies/generateNearbyTrackList.js @@ -0,0 +1,34 @@ +export default { + query: (tracks, contextTrack) => ({ + presentedTracks: + (contextTrack + ? tracks.map(track => + track.otherReleases.find(({album}) => album === contextTrack.album) ?? + track) + : tracks), + }), + + relations: (relation, query, _tracks, _contextTrack) => ({ + items: + query.presentedTracks + .map(track => relation('generateTrackListItem', track, [])), + }), + + slots: { + colorMode: { + validate: v => v.is('none', 'track', 'line'), + default: 'track', + }, + }, + + generate: (relations, slots, {html}) => + html.tag('ul', + {[html.onlyIfContent]: true}, + + relations.items.map(item => + item.slots({ + showArtists: 'auto', + showDuration: false, + colorMode: slots.colorMode, + }))), +}; -- cgit 1.3.0-6-gf8a5