diff --git a/src/app/providers/conference-data.ts b/src/app/providers/conference-data.ts index a7f6a2db..64e41395 100644 --- a/src/app/providers/conference-data.ts +++ b/src/app/providers/conference-data.ts @@ -261,7 +261,12 @@ export class ConferenceData { data.schedule.filter((s: any) => collapseKinds.includes(s.kind)).forEach((slot: any) => { const day = new Date(slot.start).toLocaleDateString('en-us', {timeZone: environment.timezone, weekday: 'short'}); const slotName = markdownToTxt(slot.name); - const key = `${slot.kind}-${day}-${slotName}`; + // Include start time in the key so morning and afternoon "Break" + // entries don't collapse into a single 10:30-4:30 row that spans + // the lunches and afternoon talks. Per-room same-start slots + // (e.g. all the 13:00 Lunch (Hall AB) entries across talk rooms) + // still share a key and merge correctly. + const key = `${slot.kind}-${day}-${slotName}-${slot.start}`; if (!collapsedGroups.has(key)) { // Rename lunchtime breaks let name = slot.kind === 'poster' ? 'Posters' : markdownToTxt(slot.name);