diff --git a/src/app/pages/session-detail/session-detail.html b/src/app/pages/session-detail/session-detail.html index b8424b07..183170fa 100644 --- a/src/app/pages/session-detail/session-detail.html +++ b/src/app/pages/session-detail/session-detail.html @@ -42,11 +42,11 @@

{{session.name}}

-
- +
+
-

{{keynoteData.name}}

-

{{keynoteData.bio}}

+

{{keynote.name}}

+

{{keynote.bio}}

diff --git a/src/app/pages/session-detail/session-detail.ts b/src/app/pages/session-detail/session-detail.ts index ee7a363e..6869a646 100644 --- a/src/app/pages/session-detail/session-detail.ts +++ b/src/app/pages/session-detail/session-detail.ts @@ -18,7 +18,7 @@ export class SessionDetailPage { isFavorite = false; isOpenSpace = false; isKeynote = false; - keynoteData: any = null; + keynoteData: any[] = []; defaultHref = ''; private keynoteSpeakers: Record = { @@ -63,15 +63,14 @@ export class SessionDetailPage { this.isOpenSpace = this.session?.tracks?.includes('open-space'); this.isKeynote = this.session?.tracks?.includes('keynote') || this.session?.track === 'Keynote'; - // Enrich keynote sessions with speaker photo/bio + // Enrich keynote sessions with speaker photo/bio. Collect every + // matching speaker so co-hosted keynotes (e.g. "Rachell Calhoun & + // Tim Schilling") render all speakers, not just the first match. if (this.isKeynote) { - const sessionName = this.session?.name || ''; - for (const [name, data] of Object.entries(this.keynoteSpeakers)) { - if (sessionName.toLowerCase().includes(name.toLowerCase())) { - this.keynoteData = { name, ...data }; - break; - } - } + const sessionName = (this.session?.name || '').toLowerCase(); + this.keynoteData = Object.entries(this.keynoteSpeakers) + .filter(([name]) => sessionName.includes(name.toLowerCase())) + .map(([name, data]) => ({ name, ...data })); } this.isFavorite = this.userProvider.hasFavorite(