diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2022-02-12 17:38:27 -0400 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2022-02-12 17:40:01 -0400 |
commit | 95bd943d62473e53de11cd6368e540cd48e4231a (patch) | |
tree | a6e1f0a21222eaeb01a270d8202a31616903649b /src/thing/homepage-layout.js | |
parent | cfa02cb03a363c46408db7f0ec54bd3a7e4ad018 (diff) |
bam (Thing subclasses: several steps, one file)
Diffstat (limited to 'src/thing/homepage-layout.js')
-rw-r--r-- | src/thing/homepage-layout.js | 99 |
1 files changed, 0 insertions, 99 deletions
diff --git a/src/thing/homepage-layout.js b/src/thing/homepage-layout.js deleted file mode 100644 index 47173917..00000000 --- a/src/thing/homepage-layout.js +++ /dev/null @@ -1,99 +0,0 @@ -import CacheableObject from './cacheable-object.js'; - -import { - isColor, - isCountingNumber, - isName, - isString, - oneOf, - validateArrayItems, - validateInstanceOf, - validateReference, - validateReferenceList, -} from './validators.js'; - -export class HomepageLayoutRow extends CacheableObject { - static propertyDescriptors = { - // Update & expose - - name: { - flags: {update: true, expose: true}, - update: {validate: isName} - }, - - type: { - flags: {update: true, expose: true}, - - update: { - validate(value) { - throw new Error(`'type' property validator must be overridden`); - } - } - }, - - color: { - flags: {update: true, expose: true}, - update: {validate: isColor} - }, - }; -} - -export class HomepageLayoutAlbumsRow extends HomepageLayoutRow { - static propertyDescriptors = { - ...HomepageLayoutRow.propertyDescriptors, - - // Update & expose - - type: { - flags: {update: true, expose: true}, - update: { - validate(value) { - if (value !== 'albums') { - throw new TypeError(`Expected 'albums'`); - } - - return true; - } - } - }, - - sourceGroupByRef: { - flags: {update: true, expose: true}, - update: {validate: validateReference('group')} - }, - - sourceAlbumsByRef: { - flags: {update: true, expose: true}, - update: {validate: validateReferenceList('album')} - }, - - countAlbumsFromGroup: { - flags: {update: true, expose: true}, - update: {validate: isCountingNumber} - }, - - actionLinks: { - flags: {update: true, expose: true}, - update: {validate: validateArrayItems(isString)} - }, - } -} - -export default class HomepageLayout extends CacheableObject { - static propertyDescriptors = { - // Update & expose - - sidebarContent: { - flags: {update: true, expose: true}, - update: {validate: isString} - }, - - rows: { - flags: {update: true, expose: true}, - - update: { - validate: validateArrayItems(validateInstanceOf(HomepageLayoutRow)) - } - }, - }; -} |