From aba51f9096e656c0f6efc5efceea150b6c960bda Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Wed, 10 Apr 2024 20:42:06 -0300 Subject: content: gAIPArtworksChunkedList: general refactor a la tracks --- .../generateArtistInfoPageArtworksChunk.js | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/content/dependencies/generateArtistInfoPageArtworksChunk.js (limited to 'src/content/dependencies/generateArtistInfoPageArtworksChunk.js') diff --git a/src/content/dependencies/generateArtistInfoPageArtworksChunk.js b/src/content/dependencies/generateArtistInfoPageArtworksChunk.js new file mode 100644 index 00000000..b62cb39b --- /dev/null +++ b/src/content/dependencies/generateArtistInfoPageArtworksChunk.js @@ -0,0 +1,38 @@ +export default { + contentDependencies: [ + 'generateArtistInfoPageChunk', + 'generateArtistInfoPageArtworksChunkItem', + 'linkAlbum', + ], + + relations: (relation, album, contribs) => ({ + template: + relation('generateArtistInfoPageChunk'), + + albumLink: + relation('linkAlbum', album), + + // Intentional mapping here: each item may be associated with + // more than one contribution. (Note: this is only currently + // applicable for track contributions, but we're retaining the + // structure in other contributions too.) + items: + contribs + .map(contrib => + relation('generateArtistInfoPageArtworksChunkItem', contrib)), + }), + + data: (_album, contribs) => ({ + dates: + contribs + .map(contrib => contrib.date), + }), + + generate: (data, relations) => + relations.template.slots({ + mode: 'album', + albumLink: relations.albumLink, + dates: data.dates, + items: relations.items, + }), +}; -- cgit 1.3.0-6-gf8a5