« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/content/dependencies/generateArtistInfoPageArtworksChunkedList.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/content/dependencies/generateArtistInfoPageArtworksChunkedList.js')
-rw-r--r--src/content/dependencies/generateArtistInfoPageArtworksChunkedList.js33
1 files changed, 27 insertions, 6 deletions
diff --git a/src/content/dependencies/generateArtistInfoPageArtworksChunkedList.js b/src/content/dependencies/generateArtistInfoPageArtworksChunkedList.js
index caefb7a3..2be02577 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,12 +18,19 @@ export default {
       ...artist.trackCoverArtistContributions,
     ];
 
+    const filteredContributions =
+      allContributions
+        .filter(({annotation}) =>
+          (filterEditsForWiki
+            ? annotation?.startsWith(`edits for wiki`)
+            : !annotation?.startsWith(`edits for wiki`)));
+
     sortContributionsChronologically(
-      allContributions,
+      filteredContributions,
       sortAlbumsTracksChronologically);
 
     query.contribs =
-      chunkByConditions(allContributions, [
+      chunkByConditions(filteredContributions, [
         ({date: date1}, {date: date2}) =>
           +date1 !== +date2,
         ({thing: thing1}, {thing: thing2}) =>
@@ -39,7 +46,7 @@ export default {
     return query;
   },
 
-  relations: (relation, query, _artist) => ({
+  relations: (relation, query, _artist, _filterEditsForWiki) => ({
     chunkedList:
       relation('generateArtistInfoPageChunkedList'),
 
@@ -51,8 +58,22 @@ 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 => {
+          if (data.filterEditsForWiki) {
+            chunk.setSlots({
+              trimAnnotations: true,
+              dates: [],
+            });
+          }
+
+          return chunk;
+        }),
     }),
 };