From 77307b738a8bc85640f53c34f8150ce179bdeefc Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Thu, 28 May 2026 15:01:17 -0300 Subject: data: Track.suffixDirectory from name detail --- src/data/things/album/Album.js | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'src/data/things/album/Album.js') diff --git a/src/data/things/album/Album.js b/src/data/things/album/Album.js index 2a21d52e..47abb73a 100644 --- a/src/data/things/album/Album.js +++ b/src/data/things/album/Album.js @@ -4,6 +4,7 @@ import Thing from '#thing'; import {getKebabCase} from '#wiki-data'; import { + anyOf, is, isBoolean, isContributionList, @@ -138,11 +139,40 @@ export class Album extends Thing { return true; }, }), + + suffix: 'suffixDirectory', }), exposeDependency('#directory'), ], + suffixDirectory: [ + exposeUpdateValueOrContinue({ + validate: input.value( + anyOf(is(false), isDirectory)), + }), + + { + transform: (value, continuation) => + (value === false + ? null + : continuation()), + }, + + { + dependencies: ['nameDetail'], + compute(continuation, {nameDetail}) { + if (nameDetail) { + return getKebabCase(nameDetail); + } + + return continuation(); + }, + }, + + exposeConstant(V(null)), + ], + directorySuffixForTracks: [ exposeUpdateValueOrContinue({ validate: input.value(isDirectory), @@ -660,6 +690,8 @@ export class Album extends Thing { 'Name Detail For Tracks': {property: 'nameDetailForTracks'}, 'Directory': {property: 'directory'}, + 'Suffix Own Directory': {property: 'suffixDirectory'}, + 'Directory Suffix': {property: 'directorySuffixForTracks'}, 'Suffix Track Directories': {property: 'suffixTrackDirectoriesByDefault'}, -- cgit 1.3.0-6-gf8a5