diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2025-02-11 11:12:07 -0400 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2025-02-12 07:43:59 -0400 |
commit | c45d45759395725128c030ac387bb20b80aada1e (patch) | |
tree | dd71e8354268ca5c48101b0b225144db982cc5cb /src/content/dependencies/generateWikiHomepageAlbumsRow.js | |
parent | 19d9c3a3d16ed08b2d0c9e09259ffb79a27cd3e9 (diff) |
content, data: generateWikiHomepageAlbum{Carousel,Grid}Row
Diffstat (limited to 'src/content/dependencies/generateWikiHomepageAlbumsRow.js')
-rw-r--r-- | src/content/dependencies/generateWikiHomepageAlbumsRow.js | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/src/content/dependencies/generateWikiHomepageAlbumsRow.js b/src/content/dependencies/generateWikiHomepageAlbumsRow.js deleted file mode 100644 index 258e5fe1..00000000 --- a/src/content/dependencies/generateWikiHomepageAlbumsRow.js +++ /dev/null @@ -1,115 +0,0 @@ -import {empty, stitchArrays} from '#sugar'; -import {getNewAdditions, getNewReleases} from '#wiki-data'; - -export default { - contentDependencies: [ - 'generateCoverCarousel', - 'generateCoverGrid', - 'image', - 'linkAlbum', - ], - - extraDependencies: ['language', 'wikiData'], - - sprawl({albumData}, row) { - const sprawl = {}; - - switch (row.sourceGroup) { - case 'new-releases': - sprawl.albums = getNewReleases(row.countAlbumsFromGroup, {albumData}); - break; - - case 'new-additions': - sprawl.albums = getNewAdditions(row.countAlbumsFromGroup, {albumData}); - break; - - default: - sprawl.albums = - (row.sourceGroup - ? row.sourceGroup.albums - .slice() - .reverse() - .filter(album => album.isListedOnHomepage) - .slice(0, row.countAlbumsFromGroup) - : []); - } - - if (!empty(row.sourceAlbums)) { - sprawl.albums.push(...row.sourceAlbums); - } - - return sprawl; - }, - - relations: (relation, sprawl, row) => ({ - coverGrid: - (row.displayStyle === 'grid' - ? relation('generateCoverGrid') - : null), - - coverCarousel: - (row.displayStyle === 'carousel' - ? relation('generateCoverCarousel') - : null), - - links: - sprawl.albums - .map(album => relation('linkAlbum', album)), - - images: - sprawl.albums - .map(album => relation('image', album.artTags)), - }), - - data: (sprawl, row) => ({ - displayStyle: - row.displayStyle, - - names: - (row.displayStyle === 'grid' - ? sprawl.albums - .map(album => album.name) - : null), - - paths: - sprawl.albums - .map(album => - (album.hasCoverArt - ? ['media.albumCover', album.directory, album.coverArtFileExtension] - : null)), - }), - - generate(data, relations, {language}) { - // Grids and carousels share some slots! Very convenient. - const commonSlots = {}; - - commonSlots.links = - relations.links; - - commonSlots.images = - stitchArrays({ - image: relations.images, - path: data.paths, - name: data.names ?? data.paths.slice().fill(null), - }).map(({image, path, name}) => - image.slots({ - path, - missingSourceContent: - language.$('misc.coverGrid.noCoverArt', { - [language.onlyIfOptions]: ['album'], - album: name, - }), - })); - - switch (data.displayStyle) { - case 'grid': - return relations.coverGrid.slots({ - ...commonSlots, - names: data.names, - }); - - case 'carousel': - return relations.coverCarousel.slots(commonSlots); - } - }, -}; |