diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2025-02-11 10:56:46 -0400 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2025-02-12 07:43:59 -0400 |
commit | 19d9c3a3d16ed08b2d0c9e09259ffb79a27cd3e9 (patch) | |
tree | 28f4576eae41596e8436525fe86bc9609fe2be09 /src/content | |
parent | 7ee12e72ae59f06dcde10f330dbfd023ae04709d (diff) |
content, data: generateWikiHomepageActionsRow
Diffstat (limited to 'src/content')
4 files changed, 27 insertions, 25 deletions
diff --git a/src/content/dependencies/generateCoverCarousel.js b/src/content/dependencies/generateCoverCarousel.js index 69220da6..430f651e 100644 --- a/src/content/dependencies/generateCoverCarousel.js +++ b/src/content/dependencies/generateCoverCarousel.js @@ -2,24 +2,16 @@ import {empty, repeat, stitchArrays} from '#sugar'; import {getCarouselLayoutForNumberOfItems} from '#wiki-data'; export default { - contentDependencies: ['generateGridActionLinks'], extraDependencies: ['html'], - relations(relation) { - return { - actionLinks: relation('generateGridActionLinks'), - }; - }, - slots: { images: {validate: v => v.strictArrayOf(v.isHTML)}, links: {validate: v => v.strictArrayOf(v.isHTML)}, lazy: {validate: v => v.anyOf(v.isWholeNumber, v.isBoolean)}, - actionLinks: {validate: v => v.sparseArrayOf(v.isHTML)}, }, - generate(relations, slots, {html}) { + generate(slots, {html}) { const stitched = stitchArrays({ image: slots.images, @@ -58,9 +50,6 @@ export default { }), })))), ])), - - relations.actionLinks - .slot('actionLinks', slots.actionLinks), ]); }, }; diff --git a/src/content/dependencies/generateWikiHomepageActionsRow.js b/src/content/dependencies/generateWikiHomepageActionsRow.js new file mode 100644 index 00000000..9f501099 --- /dev/null +++ b/src/content/dependencies/generateWikiHomepageActionsRow.js @@ -0,0 +1,22 @@ +export default { + contentDependencies: ['generateGridActionLinks', 'transformContent'], + + relations: (relation, row) => ({ + template: + relation('generateGridActionLinks'), + + links: + row.actionLinks + .map(content => relation('transformContent', content)), + }), + + generate: (relations) => + relations.template.slots({ + actionLinks: + relations.links + .map(contents => + contents + .slot('mode', 'single-link') + .content), + }), +}; diff --git a/src/content/dependencies/generateWikiHomepageAlbumsRow.js b/src/content/dependencies/generateWikiHomepageAlbumsRow.js index b8e56a97..258e5fe1 100644 --- a/src/content/dependencies/generateWikiHomepageAlbumsRow.js +++ b/src/content/dependencies/generateWikiHomepageAlbumsRow.js @@ -7,7 +7,6 @@ export default { 'generateCoverGrid', 'image', 'linkAlbum', - 'transformContent', ], extraDependencies: ['language', 'wikiData'], @@ -60,10 +59,6 @@ export default { images: sprawl.albums .map(album => relation('image', album.artTags)), - - actionLinks: - row.actionLinks - .map(content => relation('transformContent', content)), }), data: (sprawl, row) => ({ @@ -106,13 +101,6 @@ export default { }), })); - commonSlots.actionLinks = - relations.actionLinks - .map(contents => - contents - .slot('mode', 'single-link') - .content); - switch (data.displayStyle) { case 'grid': return relations.coverGrid.slots({ diff --git a/src/content/dependencies/generateWikiHomepageSection.js b/src/content/dependencies/generateWikiHomepageSection.js index 15299dd4..963c5dde 100644 --- a/src/content/dependencies/generateWikiHomepageSection.js +++ b/src/content/dependencies/generateWikiHomepageSection.js @@ -1,6 +1,7 @@ export default { contentDependencies: [ 'generateColorStyleAttribute', + 'generateWikiHomepageActionsRow', 'generateWikiHomepageAlbumsRow', ], @@ -12,7 +13,9 @@ export default { rows: homepageSection.rows.map(row => - (row.type === 'albums' + (row.type === 'actions' + ? relation('generateWikiHomepageActionsRow', row) + : row.type === 'albums' ? relation('generateWikiHomepageAlbumsRow', row) : null)), }), |