« 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/generateLyricsSection.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/content/dependencies/generateLyricsSection.js')
-rw-r--r--src/content/dependencies/generateLyricsSection.js42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/content/dependencies/generateLyricsSection.js b/src/content/dependencies/generateLyricsSection.js
new file mode 100644
index 00000000..7e7718c7
--- /dev/null
+++ b/src/content/dependencies/generateLyricsSection.js
@@ -0,0 +1,42 @@
+export default {
+  contentDependencies: [
+    'generateContentHeading',
+    'generateLyricsEntry',
+    'generateLyricsSwitcher',
+    'transformContent',
+  ],
+
+  extraDependencies: ['html', 'language'],
+
+  relations: (relation, entries) => ({
+    heading:
+      relation('generateContentHeading'),
+
+    switcher:
+      relation('generateLyricsSwitcher', entries),
+
+    entries:
+      entries
+        .map(entry => relation('generateLyricsEntry', entry)),
+  }),
+
+  generate: (relations, {html, language}) =>
+    html.tags([
+      relations.heading
+        .slots({
+          attributes: {id: 'lyrics'},
+          title: language.$('releaseInfo.lyrics'),
+        }),
+
+      relations.switcher,
+
+      relations.entries
+        .map((entry, index) =>
+          entry.slots({
+            attributes: [
+              index >= 1 &&
+                {style: 'display: none'},
+            ],
+          })),
+    ]),
+};