diff options
Diffstat (limited to 'src/content/dependencies/generateWikiHomepageAlbumsRow.js')
-rw-r--r-- | src/content/dependencies/generateWikiHomepageAlbumsRow.js | 81 |
1 files changed, 35 insertions, 46 deletions
diff --git a/src/content/dependencies/generateWikiHomepageAlbumsRow.js b/src/content/dependencies/generateWikiHomepageAlbumsRow.js index 047dca72..4ae48758 100644 --- a/src/content/dependencies/generateWikiHomepageAlbumsRow.js +++ b/src/content/dependencies/generateWikiHomepageAlbumsRow.js @@ -43,59 +43,50 @@ export default { return sprawl; }, - relations(relation, sprawl, row) { - const relations = {}; + relations: (relation, sprawl, row) => ({ + contentRow: + relation('generateWikiHomepageContentRow', row), - relations.contentRow = - relation('generateWikiHomepageContentRow', row); + coverGrid: + (row.displayStyle === 'grid' + ? relation('generateCoverGrid') + : null), - if (row.displayStyle === 'grid') { - relations.coverGrid = - relation('generateCoverGrid'); - } - - if (row.displayStyle === 'carousel') { - relations.coverCarousel = - relation('generateCoverCarousel'); - } + coverCarousel: + (row.displayStyle === 'carousel' + ? relation('generateCoverCarousel') + : null), - relations.links = + links: sprawl.albums - .map(album => relation('linkAlbum', album)); + .map(album => relation('linkAlbum', album)), - relations.images = + images: sprawl.albums - .map(album => relation('image', album.artTags)); - - if (row.actionLinks) { - relations.actionLinks = - row.actionLinks - .map(content => relation('transformContent', content)); - } + .map(album => relation('image', album.artTags)), - return relations; - }, - - data(sprawl, row) { - const data = {}; + actionLinks: + row.actionLinks + .map(content => relation('transformContent', content)), + }), - data.displayStyle = row.displayStyle; + data: (sprawl, row) => ({ + displayStyle: + row.displayStyle, - if (row.displayStyle === 'grid') { - data.names = - sprawl.albums - .map(album => album.name); - } + names: + (row.displayStyle === 'grid' + ? sprawl.albums + .map(album => album.name) + : null), - data.paths = + paths: sprawl.albums .map(album => (album.hasCoverArt ? ['media.albumCover', album.directory, album.coverArtFileExtension] - : null)); - - return data; - }, + : null)), + }), generate(data, relations, {language}) { // Grids and carousels share some slots! Very convenient. @@ -120,13 +111,11 @@ export default { })); commonSlots.actionLinks = - (relations.actionLinks - ? relations.actionLinks - .map(contents => - contents - .slot('mode', 'single-link') - .content) - : null); + relations.actionLinks + .map(contents => + contents + .slot('mode', 'single-link') + .content); let content; |