From ea4cd3278454f6ff4bd869de1fd44eef42f0476b Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Tue, 11 Feb 2025 10:44:34 -0400 Subject: data: HomepageLayout: make 'type' expose-only --- src/data/things/homepage-layout.js | 45 +++++++++++++++----------------------- 1 file changed, 18 insertions(+), 27 deletions(-) (limited to 'src') diff --git a/src/data/things/homepage-layout.js b/src/data/things/homepage-layout.js index 97e481f8..3287d6f0 100644 --- a/src/data/things/homepage-layout.js +++ b/src/data/things/homepage-layout.js @@ -164,16 +164,6 @@ export class HomepageLayoutRow extends Thing { static [Thing.getPropertyDescriptors] = ({HomepageLayoutSection}) => ({ // Update & expose - type: { - flags: {update: true, expose: true}, - - update: { - validate() { - throw new Error(`'type' property validator must be overridden`); - }, - }, - }, - section: thing({ class: input.value(HomepageLayoutSection), }), @@ -181,11 +171,23 @@ export class HomepageLayoutRow extends Thing { // Update only find: soupyFind(), + + // Expose only + + type: { + flags: {expose: true}, + + expose: { + compute() { + throw new Error(`'type' property validator must be overridden`); + }, + }, + }, }); static [Thing.yamlDocumentSpec] = { fields: { - 'Row': {property: 'type'}, + 'Row': {ignore: true}, }, }; @@ -216,19 +218,6 @@ export class HomepageLayoutAlbumsRow extends HomepageLayoutRow { // Update & expose - type: { - flags: {update: true, expose: true}, - update: { - validate(value) { - if (value !== 'albums') { - throw new TypeError(`Expected 'albums'`); - } - - return true; - }, - }, - }, - displayStyle: { flags: {update: true, expose: true}, @@ -279,9 +268,11 @@ export class HomepageLayoutAlbumsRow extends HomepageLayoutRow { update: {validate: isCountingNumber}, }, - actionLinks: { - flags: {update: true, expose: true}, - update: {validate: validateArrayItems(isString)}, + // Expose only + + type: { + flags: {expose: true}, + expose: {compute: () => 'albums'}, }, }); -- cgit 1.3.0-6-gf8a5