Skip to content

Commit 7b14b38

Browse files
committed
fix(calendar): improve dynamic header and event loading
- Increase event fetch limit to 200 to cover full month view - Update events panel header dynamically based on selected date: - Shows "Today's Schedule" when clicking on today's date - Shows formatted date (e.g., "Wednesday, January 28") for other days - Change default sidebar view from "Today" to "Week" - Replace hardcoded title/date with "Loading..." placeholders that get populated dynamically by JavaScript
1 parent 9e571d3 commit 7b14b38

3 files changed

Lines changed: 23 additions & 6 deletions

File tree

internal/air/static/js/calendar-data.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ async loadEvents() {
2121

2222
const data = await AirAPI.getEvents({
2323
start: Math.floor(start.getTime() / 1000),
24-
end: Math.floor(end.getTime() / 1000)
24+
end: Math.floor(end.getTime() / 1000),
25+
limit: 200 // Fetch more events to cover the full month
2526
});
2627

2728
this.events = data.events || [];

internal/air/static/js/calendar-ui.js

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,24 @@ onDayClick(dateStr, dayEl) {
9595
document.querySelectorAll('.calendar-day.selected').forEach(el => el.classList.remove('selected'));
9696
dayEl.classList.add('selected');
9797

98-
// Update events panel header
98+
// Check if clicked date is today
99+
const today = new Date();
100+
const isToday = clickedDate.getFullYear() === today.getFullYear() &&
101+
clickedDate.getMonth() === today.getMonth() &&
102+
clickedDate.getDate() === today.getDate();
103+
104+
// Update events panel header title and date
105+
const headerEl = document.querySelector('.events-header h3');
99106
const dateEl = document.querySelector('.events-date');
107+
108+
if (headerEl) {
109+
headerEl.textContent = isToday ? "Today's Schedule" : clickedDate.toLocaleDateString('en-US', {
110+
weekday: 'long',
111+
month: 'long',
112+
day: 'numeric'
113+
});
114+
}
115+
100116
if (dateEl) {
101117
dateEl.textContent = clickedDate.toLocaleDateString('en-US', {
102118
weekday: 'short',

internal/air/templates/pages/calendar.gohtml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111
</button>
1212

1313
<div class="folder-group">
14-
<div class="folder-item active">
14+
<div class="folder-item">
1515
<span class="folder-icon">📆</span>
1616
<span>Today</span>
1717
</div>
18-
<div class="folder-item">
18+
<div class="folder-item active">
1919
<span class="folder-icon">📅</span>
2020
<span>Week</span>
2121
</div>
@@ -79,7 +79,7 @@
7979
<div class="calendar-header">
8080
<div class="calendar-nav">
8181
<button class="calendar-nav-btn">←</button>
82-
<h2 class="calendar-title">December 2024</h2>
82+
<h2 class="calendar-title">Loading...</h2>
8383
<button class="calendar-nav-btn">→</button>
8484
</div>
8585
<button class="today-btn">Today</button>
@@ -139,7 +139,7 @@
139139
<div class="calendar-events-panel" data-testid="events-panel">
140140
<div class="events-header">
141141
<h3>Today's Schedule</h3>
142-
<span class="events-date">Wed, Dec 25</span>
142+
<span class="events-date">Loading...</span>
143143
</div>
144144
<div class="events-list" id="eventsList">
145145
<!-- Skeleton loaders - replaced by JavaScript -->

0 commit comments

Comments
 (0)