From dec015d9e25d9455558c0959dd7c8e23a4527a4b Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Sun, 27 Jul 2025 17:52:21 -0300 Subject: content: generateAlbumArtworkColumn: fix separating attaching arts --- .../dependencies/generateAlbumArtworkColumn.js | 54 ++++++++++++++-------- 1 file changed, 35 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/content/dependencies/generateAlbumArtworkColumn.js b/src/content/dependencies/generateAlbumArtworkColumn.js index e6762463..150d3b6e 100644 --- a/src/content/dependencies/generateAlbumArtworkColumn.js +++ b/src/content/dependencies/generateAlbumArtworkColumn.js @@ -2,37 +2,53 @@ export default { contentDependencies: ['generateAlbumArtInfoBox', 'generateCoverArtwork'], extraDependencies: ['html'], - relations: (relation, album) => ({ - firstCover: + query: (album) => ({ + nonAttachingArtworkIndex: (album.hasCoverArt - ? relation('generateCoverArtwork', album.coverArtworks[0]) + ? album.coverArtworks.findIndex((artwork, index) => + index > 1 && + !artwork.attachAbove) : null), + }), + + relations: (relation, query, album) => ({ + firstCovers: + (album.hasCoverArt && query.nonAttachingArtworkIndex >= 1 + ? album.coverArtworks + .slice(0, query.nonAttachingArtworkIndex) + .map(artwork => relation('generateCoverArtwork', artwork)) + + : album.hasCoverArt + ? album.coverArtworks + .map(artwork => relation('generateCoverArtwork', artwork)) - restCovers: - (album.hasCoverArt - ? album.coverArtworks.slice(1).map(artwork => - relation('generateCoverArtwork', artwork)) : []), albumArtInfoBox: relation('generateAlbumArtInfoBox', album), + + restCovers: + (album.hasCoverArt && query.nonAttachingArtworkIndex >= 1 + ? album.coverArtworks + .slice(query.nonAttachingArtworkIndex) + .map(artwork => relation('generateCoverArtwork', artwork)) + + : []), }), - generate: (relations, {html}) => - html.tags([ - relations.firstCover?.slots({ + generate(relations, {html}) { + for (const cover of [...relations.firstCovers, ...relations.restCovers]) { + cover.setSlots({ showOriginDetails: true, showArtTagDetails: true, showReferenceDetails: true, - }), + }); + } + return html.tags([ + relations.firstCovers, relations.albumArtInfoBox, - - relations.restCovers.map(cover => - cover.slots({ - showOriginDetails: true, - showArtTagDetails: true, - showReferenceDetails: true, - })), - ]), + relations.restCovers, + ]); + }, }; -- cgit 1.3.0-6-gf8a5