From bbfb1f3539c3cf7cdc06aae7c9c408c1d2da5054 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Tue, 6 Feb 2024 21:51:06 -0400 Subject: content: generateAlbumTrackListItem: handle no durations in scope --- src/content/dependencies/generateAlbumTrackList.js | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'src/content/dependencies/generateAlbumTrackList.js') diff --git a/src/content/dependencies/generateAlbumTrackList.js b/src/content/dependencies/generateAlbumTrackList.js index 089f6e30..ee06b9e6 100644 --- a/src/content/dependencies/generateAlbumTrackList.js +++ b/src/content/dependencies/generateAlbumTrackList.js @@ -108,9 +108,25 @@ export default { return data; }, - generate(data, relations, {html, language}) { + slots: { + collapseDurationScope: { + validate: v => + v.is('never', 'track', 'section', 'album'), + + default: 'album', + }, + }, + + generate(data, relations, slots, {html, language}) { const listTag = (data.hasTrackNumbers ? 'ol' : 'ul'); + const slotItems = items => + items.map(item => + item.slots({ + collapseDurationScope: + slots.collapseDurationScope, + })); + switch (data.displayMode) { case 'trackSections': return html.tag('dl', {class: 'album-group-list'}, @@ -152,11 +168,11 @@ export default { data.hasTrackNumbers && {start: startIndex + 1}, - items)), + slotItems(items))), ])); case 'tracks': - return html.tag(listTag, relations.items); + return html.tag(listTag, slotItems(relations.items)); default: return html.blank(); -- cgit 1.3.0-6-gf8a5