From ebeeaa294856c283c245f00cf8f1e9942edffdee Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Wed, 8 May 2024 13:55:23 -0400 Subject: [PATCH] Fix guest stars being listed twice on details page --- src/controllers/itemDetails/index.js | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/controllers/itemDetails/index.js b/src/controllers/itemDetails/index.js index 90b2f3fabc..71aebc57a4 100644 --- a/src/controllers/itemDetails/index.js +++ b/src/controllers/itemDetails/index.js @@ -1,3 +1,4 @@ +import { PersonKind } from '@jellyfin/sdk/lib/generated-client/models/person-kind'; import { intervalToDuration } from 'date-fns'; import DOMPurify from 'dompurify'; import escapeHtml from 'escape-html'; @@ -822,8 +823,18 @@ function setInitialCollapsibleState(page, item, apiClient, context, user) { page.querySelector('#specialsCollapsible').classList.add('hide'); } - renderCast(page, item); - renderGuestCast(page, item); + const cast = []; + const guestCast = []; + (item.People || []).forEach(p => { + if (p.Type === PersonKind.GuestStar) { + guestCast.push(p); + } else { + cast.push(p); + } + }); + + renderCast(page, item, cast); + renderGuestCast(page, item, guestCast); if (item.PartCount && item.PartCount > 1) { page.querySelector('#additionalPartsCollapsible').classList.remove('hide'); @@ -1803,9 +1814,7 @@ function renderSpecials(page, item, user) { }); } -function renderCast(page, item) { - const people = item.People || []; - +function renderCast(page, item, people) { if (!people.length) { page.querySelector('#castCollapsible').classList.add('hide'); return; @@ -1825,9 +1834,7 @@ function renderCast(page, item) { }); } -function renderGuestCast(page, item) { - const people = (item.People || []).filter(p => p.Type === 'GuestStar'); - +function renderGuestCast(page, item, people) { if (!people.length) { page.querySelector('#guestCastCollapsible').classList.add('hide'); return;