« get me outta code hell

data, content, css: FlashAct.{shortName,title,titleColor} - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data/things/flash
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2026-02-09 18:37:25 -0400
committer(quasar) nebula <qznebula@protonmail.com>2026-02-09 18:38:44 -0400
commite9a68b43a53a1aa1fc5d0f954241261807785fb2 (patch)
tree09ee001ff07900a71ed59f09675ac23f8d7b2ec7 /src/data/things/flash
parent3c98e89daad1e312907c6f5f614b44b38f65408e (diff)
data, content, css: FlashAct.{shortName,title,titleColor}
Diffstat (limited to 'src/data/things/flash')
-rw-r--r--src/data/things/flash/FlashAct.js43
1 files changed, 39 insertions, 4 deletions
diff --git a/src/data/things/flash/FlashAct.js b/src/data/things/flash/FlashAct.js
index d1c64b4b..19412fdc 100644
--- a/src/data/things/flash/FlashAct.js
+++ b/src/data/things/flash/FlashAct.js
@@ -1,6 +1,6 @@
 import {input, V} from '#composite';
 import Thing from '#thing';
-import {isContentString, isString} from '#validators';
+import {isColor, isContentString, isString} from '#validators';
 
 import {withPropertyFromObject} from '#composite/data';
 
@@ -33,10 +33,42 @@ export class FlashAct extends Thing {
     side: thing(V(FlashSide)),
 
     name: name(V('Unnamed Flash Act')),
-    nameHTML: simpleString(),
-    directory: directory(),
+
+    title: simpleString(),
+
+    shortName: [
+      exposeUpdateValueOrContinue({
+        validate: input.value(isString),
+      }),
+
+      exposeDependency('name'),
+    ],
+
+    directory: [
+      {
+        dependencies: ['name', 'shortName'],
+        compute: (continuation, {name, shortName}) =>
+          continuation({
+            ['#name']:
+              shortName ?? name,
+          }),
+      },
+
+      directory('#name'),
+    ],
+
     color: color(),
 
+    titleColor: [
+      exitWithoutDependency('title'),
+
+      exposeUpdateValueOrContinue({
+        validate: input.value(isColor),
+      }),
+
+      exposeDependency('color'),
+    ],
+
     listTerminology: [
       exposeUpdateValueOrContinue({
         validate: input.value(isContentString),
@@ -77,10 +109,13 @@ export class FlashAct extends Thing {
   static [Thing.yamlDocumentSpec] = {
     fields: {
       'Act': {property: 'name'},
-      'Act HTML': {property: 'nameHTML'},
+      'Title': {property: 'title'},
+      'Short': {property: 'shortName'},
       'Directory': {property: 'directory'},
 
       'Color': {property: 'color'},
+      'Title Color': {property: 'titleColor'},
+
       'List Terminology': {property: 'listTerminology'},
 
       'Review Points': {ignore: true},