diff options
Diffstat (limited to 'src/content/dependencies/generateAlbumSidebarGroupBox.js')
-rw-r--r-- | src/content/dependencies/generateAlbumSidebarGroupBox.js | 68 |
1 files changed, 30 insertions, 38 deletions
diff --git a/src/content/dependencies/generateAlbumSidebarGroupBox.js b/src/content/dependencies/generateAlbumSidebarGroupBox.js index b3ee0abe..4e46c931 100644 --- a/src/content/dependencies/generateAlbumSidebarGroupBox.js +++ b/src/content/dependencies/generateAlbumSidebarGroupBox.js @@ -5,53 +5,45 @@ export default { extraDependencies: ['html', 'language', 'transformMultiline'], contracts: { - relations: { - hook(contract, [relation, album, group]) { - contract.provide({ - group, album, - - urls: contract.selectProperty(group, 'urls'), - adjacentAlbums: contract.subcontract('adjacentAlbumsInGroup', album, group), - }); - }, + relations(contract, [album, group]) { + contract.provide({ + group, album, - compute({relation, group, album, urls, adjacentAlbums}) { - const relations = {}; + urls: contract.selectProperty(group, 'urls'), + adjacentAlbums: contract.subcontract('adjacentAlbumsInGroup', album, group), + }); + }, + }, - relations.groupLink = - relation('linkGroup', group); + relations(relation, {group, album, urls, adjacentAlbums}) { + const relations = {}; - relations.externalLinks = - urls.map(url => - relation('linkExternal', urls)); + relations.groupLink = + relation('linkGroup', group); - const {previousAlbum, nextAlbum} = adjacentAlbums; + relations.externalLinks = + urls.map(url => + relation('linkExternal', urls)); - if (previousAlbum) { - relations.previousAlbumLink = - relation('linkAlbum', previousAlbum); - } + const {previousAlbum, nextAlbum} = adjacentAlbums; - if (nextAlbum) { - relations.nextAlbumLink = - relation('linkAlbum', nextAlbum); - } + if (previousAlbum) { + relations.previousAlbumLink = + relation('linkAlbum', previousAlbum); + } - return relations; - }, - }, + if (nextAlbum) { + relations.nextAlbumLink = + relation('linkAlbum', nextAlbum); + } - data: { - hook(contract, [album, group]) { - contract.provide({ - description: contract.selectProperty(group, 'descriptionShort'), - }); - }, + return relations; + }, - compute({description}) { - return {description}; - }, - }, + data(album, group) { + return { + description: group.descriptionShort, + }; }, generate(data, relations, {html, language, transformMultiline}) { |