From 1c89b6b11cc90f90acf5195f0d24d19227bd5efd Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Fri, 25 Jul 2025 05:16:09 -0300 Subject: content: gGPAlbumGridTab: multiple groups same category --- .../generateGroupGalleryPageAlbumGridTab.js | 26 ++++++++++++++-------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'src/content/dependencies') diff --git a/src/content/dependencies/generateGroupGalleryPageAlbumGridTab.js b/src/content/dependencies/generateGroupGalleryPageAlbumGridTab.js index 018911dd..66427d7e 100644 --- a/src/content/dependencies/generateGroupGalleryPageAlbumGridTab.js +++ b/src/content/dependencies/generateGroupGalleryPageAlbumGridTab.js @@ -8,15 +8,22 @@ export default { if (album.groups.length > 1) { const contextGroup = group; + const candidateGroupCategory = + album.groups + .filter(group => !group.excludeFromGalleryTabs) + .find(group => group.category !== contextGroup.category) + ?.category ?? + null; + const candidateGroups = album.groups .filter(group => !group.excludeFromGalleryTabs) - .filter(group => group.category !== contextGroup.category); + .filter(group => group.category === candidateGroupCategory); if (!empty(candidateGroups)) { return { - mode: 'group', - notedGroup: candidateGroups.at(0), + mode: 'groups', + notedGroups: candidateGroups, }; } } @@ -50,17 +57,18 @@ export default { data: (query, _album, _group) => ({ mode: query.mode, - groupName: - (query.mode === 'group' - ? query.notedGroup.name + groupNames: + (query.mode === 'groups' + ? query.notedGroups.map(group => group.name) : null), }), generate: (data, relations, {language}) => language.encapsulate('misc.coverGrid.tab', capsule => - (data.mode === 'group' - ? language.$(capsule, 'group', { - group: data.groupName, + (data.mode === 'groups' + ? language.$(capsule, 'groups', { + groups: + language.formatConjunctionList(data.groupNames), }) : data.mode === 'artists' ? relations.artistCredit.slots({ -- cgit 1.3.0-6-gf8a5