« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data/things
diff options
context:
space:
mode:
Diffstat (limited to 'src/data/things')
-rw-r--r--src/data/things/album/TrackSection.js14
-rw-r--r--src/data/things/album/index.js3
2 files changed, 17 insertions, 0 deletions
diff --git a/src/data/things/album/TrackSection.js b/src/data/things/album/TrackSection.js
index e579a0f6..86c754ac 100644
--- a/src/data/things/album/TrackSection.js
+++ b/src/data/things/album/TrackSection.js
@@ -50,6 +50,12 @@ export class TrackSection extends Thing {
 
     name: name(V('Unnamed Track Section')),
 
+    style: {
+      flags: {update: true, expose: true},
+      update: {validate: is('section', 'aside')},
+      expose: {transform: value => value ?? 'section'},
+    },
+
     // Track sections don't have a Name Detail themselves, but they do provide
     // a value which tracks can reference via 'Name Detail: section'.
     nameDetailForTracks: {
@@ -147,6 +153,14 @@ export class TrackSection extends Thing {
         validate: input.value(isBoolean),
       }),
 
+      {
+        dependencies: ['style'],
+        compute: (continuation, {style}) =>
+          (style === 'aside'
+            ? true
+            : continuation()),
+      },
+
       withPropertyFromObject('album', V('hideTrackSectionDurations')),
       exposeDependency('#album.hideTrackSectionDurations'),
     ],
diff --git a/src/data/things/album/index.js b/src/data/things/album/index.js
index 67bf47ab..a19144d9 100644
--- a/src/data/things/album/index.js
+++ b/src/data/things/album/index.js
@@ -1,2 +1,5 @@
 export * from './Album.js';
 export * from './TrackSection.js';
+
+export * from './AsideTrackSection.js';
+export * from './CloseAsideTrackSection.js';