« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/content/dependencies/linkFlashSide.js37
-rw-r--r--src/replacer.js5
2 files changed, 42 insertions, 0 deletions
diff --git a/src/content/dependencies/linkFlashSide.js b/src/content/dependencies/linkFlashSide.js
new file mode 100644
index 00000000..c5085e1a
--- /dev/null
+++ b/src/content/dependencies/linkFlashSide.js
@@ -0,0 +1,37 @@
+export default {
+  contentDependencies: [
+    'generateColorStyleAttribute',
+    'linkStationaryIndex',
+  ],
+
+  query: (flashSide) => ({
+    jumpAct:
+      flashSide.acts[0],
+  }),
+
+  relations: (relation, _query, flashSide) => ({
+    link:
+      relation(
+        'linkStationaryIndex',
+        'localized.flashIndex',
+        'flashIndex.title'),
+
+    colorStyle:
+      relation('generateColorStyleAttribute', flashSide.color ?? null),
+  }),
+
+  data: (query, flashSide) => ({
+    name:
+      flashSide.name,
+
+    jumpActDirectory:
+      query.jumpAct.directory,
+  }),
+
+  generate: (data, relations) =>
+    relations.link.slots({
+      content: data.name,
+      hash: data.jumpActDirectory,
+      attributes: [relations.colorStyle],
+    }),
+};
diff --git a/src/replacer.js b/src/replacer.js
index 68361488..0e43e2b3 100644
--- a/src/replacer.js
+++ b/src/replacer.js
@@ -84,6 +84,11 @@ export const replacerSpec = {
     link: 'linkFlashAct',
   },
 
+  'flash-side': {
+    find: 'flashSide',
+    link: 'linkFlashSide',
+  },
+
   'group': {
     find: 'group',
     link: 'linkGroup',