Skip to content

Commit 4a6981c

Browse files
committed
fixes
1 parent 3a08aac commit 4a6981c

2 files changed

Lines changed: 20 additions & 5 deletions

File tree

functions/src/generate-sessions-speakers-schedule.ts

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { getFirestore } from 'firebase-admin/firestore';
44
import * as functions from 'firebase-functions';
55
import { sessionsSpeakersMap } from './schedule-generator/speakers-sessions-map.js';
66
import { sessionsSpeakersScheduleMap } from './schedule-generator/speakers-sessions-schedule-map.js';
7-
import { isEmpty, ScheduleMap, SessionMap, snapshotToObject, SpeakerMap } from './utils.js';
7+
import { isEmpty, pickMainTag, ScheduleMap, SessionMap, snapshotToObject, SpeakerMap } from './utils.js';
88

99
const isScheduleEnabled = async (): Promise<boolean> => {
1010
const doc = await getFirestore().collection('config').doc('schedule').get();
@@ -83,10 +83,21 @@ async function generateAndSaveData(changedSpeaker?) {
8383
}
8484

8585
// Include all sessions (including past years not on current schedule)
86-
// This ensures past talk pages are accessible via direct links
86+
// Enrich with resolved speaker objects so session pages render correctly
8787
for (const [sessionId, session] of Object.entries(sessions)) {
8888
if (!generatedData.sessions[sessionId]) {
89-
generatedData.sessions[sessionId] = { ...(session as object), id: sessionId };
89+
const raw = session as { speakers?: string[]; tags?: string[]; [key: string]: unknown };
90+
const resolvedSpeakers = (raw.speakers || []).map((speakerId: string) => ({
91+
id: speakerId,
92+
...(speakers[speakerId] || {}),
93+
sessions: null,
94+
}));
95+
generatedData.sessions[sessionId] = {
96+
...raw,
97+
id: sessionId,
98+
mainTag: pickMainTag(raw.tags),
99+
speakers: resolvedSpeakers,
100+
};
90101
}
91102
}
92103

src/pages/session-page.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,10 +236,10 @@ export class SessionPage extends ReduxMixin(PolymerElement) {
236236
on-click="toggleFeaturedSession"
237237
></paper-fab>
238238
</div>
239-
<h3 class="meta-info" hidden$="[[disabledSchedule]]">
239+
<h3 class="meta-info" hidden$="[[_hideScheduleInfo(disabledSchedule, session.dateReadable)]]">
240240
[[session.dateReadable]], [[session.startTime]] - [[session.endTime]]
241241
</h3>
242-
<h3 class="meta-info" hidden$="[[disabledSchedule]]">[[getTrackTitle(session.track, session.trackOverride)]]</h3>
242+
<h3 class="meta-info" hidden$="[[_hideScheduleInfo(disabledSchedule, session.track)]]">[[getTrackTitle(session.track, session.trackOverride)]]</h3>
243243
<h3 class="meta-info" hidden$="[[!session.complexity]]">
244244
[[sessionDetails.contentLevel]]: [[session.complexity]]
245245
</h3>
@@ -459,4 +459,8 @@ export class SessionPage extends ReduxMixin(PolymerElement) {
459459
private speakerUrl(id: string) {
460460
return router.urlForName('speaker-page', { id });
461461
}
462+
463+
private _hideScheduleInfo(disabledSchedule: boolean, value: unknown) {
464+
return disabledSchedule || !value;
465+
}
462466
}

0 commit comments

Comments
 (0)