Skip to content

Commit ae05723

Browse files
authored
Render every speaker for co-hosted keynote sessions (#261)
1 parent cfaa2ac commit ae05723

2 files changed

Lines changed: 12 additions & 13 deletions

File tree

src/app/pages/session-detail/session-detail.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,11 @@ <h1 class="session-title">{{session.name}}</h1>
4242
</div>
4343

4444
<div class="session-body">
45-
<div *ngIf="keynoteData" class="keynote-speaker-card">
46-
<img [src]="keynoteData.photo" [alt]="keynoteData.name" class="keynote-photo">
45+
<div *ngFor="let keynote of keynoteData" class="keynote-speaker-card">
46+
<img [src]="keynote.photo" [alt]="keynote.name" class="keynote-photo">
4747
<div class="keynote-info">
48-
<h3>{{keynoteData.name}}</h3>
49-
<p>{{keynoteData.bio}}</p>
48+
<h3>{{keynote.name}}</h3>
49+
<p>{{keynote.bio}}</p>
5050
</div>
5151
</div>
5252

src/app/pages/session-detail/session-detail.ts

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export class SessionDetailPage {
1818
isFavorite = false;
1919
isOpenSpace = false;
2020
isKeynote = false;
21-
keynoteData: any = null;
21+
keynoteData: any[] = [];
2222
defaultHref = '';
2323

2424
private keynoteSpeakers: Record<string, any> = {
@@ -63,15 +63,14 @@ export class SessionDetailPage {
6363
this.isOpenSpace = this.session?.tracks?.includes('open-space');
6464
this.isKeynote = this.session?.tracks?.includes('keynote') || this.session?.track === 'Keynote';
6565

66-
// Enrich keynote sessions with speaker photo/bio
66+
// Enrich keynote sessions with speaker photo/bio. Collect every
67+
// matching speaker so co-hosted keynotes (e.g. "Rachell Calhoun &
68+
// Tim Schilling") render all speakers, not just the first match.
6769
if (this.isKeynote) {
68-
const sessionName = this.session?.name || '';
69-
for (const [name, data] of Object.entries(this.keynoteSpeakers)) {
70-
if (sessionName.toLowerCase().includes(name.toLowerCase())) {
71-
this.keynoteData = { name, ...data };
72-
break;
73-
}
74-
}
70+
const sessionName = (this.session?.name || '').toLowerCase();
71+
this.keynoteData = Object.entries(this.keynoteSpeakers)
72+
.filter(([name]) => sessionName.includes(name.toLowerCase()))
73+
.map(([name, data]) => ({ name, ...data }));
7574
}
7675

7776
this.isFavorite = this.userProvider.hasFavorite(

0 commit comments

Comments
 (0)