diff options
Diffstat (limited to 'src/content/dependencies/generateArtistInfoPageArtworksChunkedList.js')
-rw-r--r-- | src/content/dependencies/generateArtistInfoPageArtworksChunkedList.js | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/src/content/dependencies/generateArtistInfoPageArtworksChunkedList.js b/src/content/dependencies/generateArtistInfoPageArtworksChunkedList.js index caefb7a3..75a4aa5a 100644 --- a/src/content/dependencies/generateArtistInfoPageArtworksChunkedList.js +++ b/src/content/dependencies/generateArtistInfoPageArtworksChunkedList.js @@ -8,7 +8,7 @@ export default { 'generateArtistInfoPageArtworksChunk', ], - query(artist) { + query(artist, filterEditsForWiki) { const query = {}; const allContributions = [ @@ -18,28 +18,36 @@ export default { ...artist.trackCoverArtistContributions, ]; + const filteredContributions = + allContributions + .filter(({annotation}) => + (filterEditsForWiki + ? annotation?.startsWith(`edits for wiki`) + : !annotation?.startsWith(`edits for wiki`))); + sortContributionsChronologically( - allContributions, - sortAlbumsTracksChronologically); + filteredContributions, + sortAlbumsTracksChronologically, + {getThing: contrib => contrib.thing.thing}); query.contribs = - chunkByConditions(allContributions, [ + chunkByConditions(filteredContributions, [ ({date: date1}, {date: date2}) => +date1 !== +date2, - ({thing: thing1}, {thing: thing2}) => + ({thing: {thing: thing1}}, {thing: {thing: thing2}}) => (thing1.album ?? thing1) !== (thing2.album ?? thing2), ]); query.albums = query.contribs - .map(contribs => contribs[0].thing) + .map(contribs => contribs[0].thing.thing) .map(thing => thing.album ?? thing); return query; }, - relations: (relation, query, _artist) => ({ + relations: (relation, query, _artist, _filterEditsForWiki) => ({ chunkedList: relation('generateArtistInfoPageChunkedList'), @@ -51,8 +59,14 @@ export default { relation('generateArtistInfoPageArtworksChunk', album, contribs)), }), - generate: (relations) => + data: (_query, _artist, filterEditsForWiki) => ({ + filterEditsForWiki, + }), + + generate: (data, relations) => relations.chunkedList.slots({ - chunks: relations.chunks, + chunks: + relations.chunks.map(chunk => + chunk.slot('filterEditsForWiki', data.filterEditsForWiki)), }), }; |