From 19d9c3a3d16ed08b2d0c9e09259ffb79a27cd3e9 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Tue, 11 Feb 2025 10:56:46 -0400 Subject: content, data: generateWikiHomepageActionsRow --- src/data/things/homepage-layout.js | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) (limited to 'src/data') diff --git a/src/data/things/homepage-layout.js b/src/data/things/homepage-layout.js index 3287d6f0..fa352ae7 100644 --- a/src/data/things/homepage-layout.js +++ b/src/data/things/homepage-layout.js @@ -80,6 +80,8 @@ export class HomepageLayout extends Thing { if (document['Row']) { switch (document['Row']) { + case 'actions': + return HomepageLayoutActionsRow; case 'albums': return HomepageLayoutAlbumsRow; default: @@ -210,6 +212,34 @@ export class HomepageLayoutRow extends Thing { } } +export class HomepageLayoutActionsRow extends HomepageLayoutRow { + static [Thing.friendlyName] = `Homepage Actions Row`; + + static [Thing.getPropertyDescriptors] = (opts) => ({ + ...HomepageLayoutRow[Thing.getPropertyDescriptors](opts), + + // Update & expose + + actionLinks: { + flags: {update: true, expose: true}, + update: {validate: validateArrayItems(isString)}, + }, + + // Expose only + + type: { + flags: {expose: true}, + expose: {compute: () => 'actions'}, + }, + }); + + static [Thing.yamlDocumentSpec] = Thing.extendDocumentSpec(HomepageLayoutRow, { + fields: { + 'Actions': {property: 'actionLinks'}, + }, + }); +} + export class HomepageLayoutAlbumsRow extends HomepageLayoutRow { static [Thing.friendlyName] = `Homepage Albums Row`; @@ -282,7 +312,6 @@ export class HomepageLayoutAlbumsRow extends HomepageLayoutRow { 'Group': {property: 'sourceGroup'}, 'Count': {property: 'countAlbumsFromGroup'}, 'Albums': {property: 'sourceAlbums'}, - 'Actions': {property: 'actionLinks'}, }, }); } -- cgit 1.3.0-6-gf8a5