diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2025-07-12 17:14:47 -0300 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2025-07-12 17:14:47 -0300 |
commit | 837b1d1bb09986e4a5634d52acf61c8c748ba88b (patch) | |
tree | bfb69d117bf5fa79ec6fa866be04029c47b66bb0 /src/content/dependencies/generateReadCommentaryLine.js | |
parent | c6bdd7a09b3968de3b0ebb19a129d081efc7c09a (diff) |
content: "read artist and wiki commentary", etc
Diffstat (limited to 'src/content/dependencies/generateReadCommentaryLine.js')
-rw-r--r-- | src/content/dependencies/generateReadCommentaryLine.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/content/dependencies/generateReadCommentaryLine.js b/src/content/dependencies/generateReadCommentaryLine.js new file mode 100644 index 00000000..a7a7a4da --- /dev/null +++ b/src/content/dependencies/generateReadCommentaryLine.js @@ -0,0 +1,47 @@ +import {empty} from '#sugar'; + +export default { + extraDependencies: ['html', 'language'], + + query: (thing) => ({ + entries: + (thing.isTrack + ? [...thing.commentary, ...thing.commentaryFromMainRelease] + : thing.commentary), + }), + + data: (query, _thing) => ({ + hasWikiEditorCommentary: + query.entries + .some(entry => entry.isWikiEditorCommentary), + + onlyWikiEditorCommentary: + !empty(query.entries) && + query.entries + .every(entry => entry.isWikiEditorCommentary), + + hasAnyCommentary: + !empty(query.entries), + }), + + generate: (data, {html, language}) => + language.encapsulate('releaseInfo.readCommentary', capsule => + language.$(capsule, { + [language.onlyIfOptions]: ['link'], + + link: + html.tag('a', + {[html.onlyIfContent]: true}, + + {href: '#artist-commentary'}, + + language.encapsulate(capsule, 'link', capsule => + (data.onlyWikiEditorCommentary + ? language.$(capsule, 'onlyWikiCommentary') + : data.hasWikiEditorCommentary + ? language.$(capsule, 'withWikiCommentary') + : data.hasAnyCommentary + ? language.$(capsule) + : html.blank()))), + })), +}; |