« get me outta code hell

content, css, data: Album.style "meta" - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/content/dependencies/generateAlbumSidebar.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2026-05-11 19:15:17 -0300
committer(quasar) nebula <qznebula@protonmail.com>2026-05-11 19:15:17 -0300
commitbbddc3020b0a9e2353d27fca15ec922a97198c13 (patch)
treeedb1b4c316c7d4b630cf06c4ecec0b1733fb915f /src/content/dependencies/generateAlbumSidebar.js
parent7ec55d7fe6e3d247d525cb1d52b44c153030e32b (diff)
content, css, data: Album.style "meta"
Diffstat (limited to 'src/content/dependencies/generateAlbumSidebar.js')
-rw-r--r--src/content/dependencies/generateAlbumSidebar.js36
1 files changed, 33 insertions, 3 deletions
diff --git a/src/content/dependencies/generateAlbumSidebar.js b/src/content/dependencies/generateAlbumSidebar.js
index 7659f361..cdd171a1 100644
--- a/src/content/dependencies/generateAlbumSidebar.js
+++ b/src/content/dependencies/generateAlbumSidebar.js
@@ -39,20 +39,39 @@ export default {
           Array.from(albumTrackMap.keys()),
           {getDate: album => albumTrackMap.get(album).date});
 
+      const metaLike =
+        (album.style === 'meta'
+          ? album => album.style === 'meta'
+          : album => album.style !== 'meta');
+
+      const metaUnlike =
+        (album.style === 'meta'
+          ? album => album.style !== 'meta'
+          : album => album.style === 'meta');
+
+      const metaReleaseAlbums =
+        allReleaseAlbums.filter(metaUnlike);
+
+      const regularReleaseAlbums =
+        allReleaseAlbums.filter(metaLike);
+
       const currentReleaseIndex =
-        allReleaseAlbums.indexOf(track.album);
+        regularReleaseAlbums.indexOf(track.album);
 
       const earlierReleaseAlbums =
-        allReleaseAlbums.slice(0, currentReleaseIndex);
+        regularReleaseAlbums.slice(0, currentReleaseIndex);
 
       const laterReleaseAlbums =
-        allReleaseAlbums.slice(currentReleaseIndex + 1);
+        regularReleaseAlbums.slice(currentReleaseIndex + 1);
 
       query.earlierReleaseTracks =
         earlierReleaseAlbums.map(album => albumTrackMap.get(album));
 
       query.laterReleaseTracks =
         laterReleaseAlbums.map(album => albumTrackMap.get(album));
+
+      query.metaReleaseTracks =
+        metaReleaseAlbums.map(album => albumTrackMap.get(album));
     }
 
     return query;
@@ -97,6 +116,13 @@ export default {
             .map(track =>
               relation('generateTrackReleaseBox', track))
         : null),
+
+    metaReleaseBoxes:
+      (track
+        ? query.metaReleaseTracks
+            .map(track =>
+              relation('generateTrackReleaseBox', track))
+        : null),
   }),
 
   data: (query, _sprawl, album, track) => ({
@@ -185,6 +211,10 @@ export default {
           relations.laterTrackReleaseBoxes,
 
         data.isTrackPage &&
+          relations.metaReleaseBoxes
+            .map(box => box.slot('meta', true)),
+
+        data.isTrackPage &&
           groupBoxes,
       ],
     });