Skip to content

Commit 9ea6cf7

Browse files
committed
Fix next speaking engagement to check both sessions and events with better error handling
1 parent be0ae46 commit 9ea6cf7

File tree

1 file changed

+35
-8
lines changed

1 file changed

+35
-8
lines changed

speaking/index.html

Lines changed: 35 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -666,25 +666,52 @@ <h3>Interested in having me speak at your event?</h3>
666666
fetch('https://sessionize.com/api/speaker/json/8zkgq232gg')
667667
.then(response => response.json())
668668
.then(data => {
669+
console.log('Sessionize API response:', data); // Debug log
669670
const container = document.getElementById('next-event-container');
670671

671672
// Find the next upcoming event
672673
let nextEvent = null;
673674
const now = new Date();
674675

676+
// Try to find upcoming sessions or events
677+
let upcomingItems = [];
678+
679+
// Check for sessions
675680
if (data.sessions && data.sessions.length > 0) {
676-
// Sort sessions by date
677-
const upcomingSessions = data.sessions
681+
upcomingItems = data.sessions
678682
.filter(session => {
679683
if (!session.startsAt) return false;
680684
const sessionDate = new Date(session.startsAt);
681685
return sessionDate >= now;
682686
})
683-
.sort((a, b) => new Date(a.startsAt) - new Date(b.startsAt));
684-
685-
if (upcomingSessions.length > 0) {
686-
nextEvent = upcomingSessions[0];
687-
}
687+
.map(session => ({
688+
...session,
689+
type: 'session'
690+
}));
691+
}
692+
693+
// Check for events (if sessions not found or empty)
694+
if (upcomingItems.length === 0 && data.events && data.events.length > 0) {
695+
upcomingItems = data.events
696+
.filter(event => {
697+
if (!event.startDate && !event.endDate) return false;
698+
const eventDate = new Date(event.startDate || event.endDate);
699+
return eventDate >= now;
700+
})
701+
.map(event => ({
702+
title: event.name,
703+
description: event.description,
704+
startsAt: event.startDate,
705+
room: event.location,
706+
categories: event.categories || [],
707+
type: 'event'
708+
}));
709+
}
710+
711+
// Sort by date and get the next one
712+
if (upcomingItems.length > 0) {
713+
upcomingItems.sort((a, b) => new Date(a.startsAt) - new Date(b.startsAt));
714+
nextEvent = upcomingItems[0];
688715
}
689716

690717
if (nextEvent) {
@@ -721,7 +748,7 @@ <h3 class="event-title">${nextEvent.title}</h3>
721748
${nextEvent.categories && nextEvent.categories.length > 0 ? `
722749
<div class="event-tags">
723750
${nextEvent.categories.map(cat =>
724-
cat.categoryItems.map(item => `<span class="event-tag">${item.name}</span>`).join('')
751+
cat.categoryItems ? cat.categoryItems.map(item => `<span class="event-tag">${item.name}</span>`).join('') : ''
725752
).join('')}
726753
</div>` : ''}
727754
`;

0 commit comments

Comments
 (0)