diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2025-02-18 13:38:21 -0400 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2025-03-02 08:23:21 -0400 |
commit | 9562f48b308b060ee4159a2c365db82581ecc107 (patch) | |
tree | 1cf5e0898e6341d4ec0376ecb17a423799e935c1 /src/content/dependencies/generateTrackReleaseBox.js | |
parent | 016aab374619323a918cf6ff34fa3e5e89f3a2fc (diff) |
content: generateTrackReleaseBox
Diffstat (limited to 'src/content/dependencies/generateTrackReleaseBox.js')
-rw-r--r-- | src/content/dependencies/generateTrackReleaseBox.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/content/dependencies/generateTrackReleaseBox.js b/src/content/dependencies/generateTrackReleaseBox.js new file mode 100644 index 00000000..ef02e2b9 --- /dev/null +++ b/src/content/dependencies/generateTrackReleaseBox.js @@ -0,0 +1,46 @@ +export default { + contentDependencies: [ + 'generateColorStyleAttribute', + 'generatePageSidebarBox', + 'linkTrack', + ], + + extraDependencies: ['html', 'language'], + + relations: (relation, track) => ({ + box: + relation('generatePageSidebarBox'), + + colorStyle: + relation('generateColorStyleAttribute', track.album.color), + + trackLink: + relation('linkTrack', track), + }), + + data: (track) => ({ + albumName: + track.album.name, + }), + + generate: (data, relations, {html, language}) => + language.encapsulate('albumSidebar.releaseBox', boxCapsule => + relations.box.slots({ + attributes: [ + {class: 'track-release-sidebar-box'}, + relations.colorStyle, + ], + + content: [ + html.tag('h1', + language.$(boxCapsule, 'title', { + album: + relations.trackLink.slots({ + color: false, + content: + language.sanitize(data.albumName), + }), + })), + ], + })), +}; |