J0BL1N commited on
Commit
32ec33e
·
verified ·
1 Parent(s): b094a27

add a countdown to the event

Browse files
Files changed (2) hide show
  1. index.html +21 -4
  2. style.css +4 -0
index.html CHANGED
@@ -282,9 +282,23 @@ calendar.appendChild(dayElement);
282
  }
283
  updateEventsList();
284
  }
285
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
286
  function updateEventsList() {
287
- const eventsContainer = document.getElementById('events-container');
288
  const upcomingEvents = events
289
  .filter(event => new Date(event.date) >= new Date())
290
  .sort((a, b) => new Date(a.date) - new Date(b.date));
@@ -308,8 +322,11 @@ updateEventsList();
308
  <span class="w-3 h-3 rounded-full mr-2 bg-${event.color}-500"></span>
309
  ${event.title}
310
  </h4>
311
- <p class="text-sm text-gray-600">${eventDate.toLocaleDateString()} ${event.time ? 'at ' + event.time : ''}</p>
312
- ${event.description ? `<p class="text-sm text-gray-500 mt-1">${event.description}</p>` : ''}
 
 
 
313
  </div>
314
  <button class="text-red-500 hover:text-red-700 delete-event" data-id="${event.id}">
315
  <i data-feather="trash-2" class="w-4 h-4"></i>
 
282
  }
283
  updateEventsList();
284
  }
285
+ function getDaysRemaining(eventDate) {
286
+ const today = new Date();
287
+ today.setHours(0, 0, 0, 0);
288
+ const timeDiff = eventDate - today;
289
+ return Math.ceil(timeDiff / (1000 * 60 * 60 * 24));
290
+ }
291
+
292
+ function getDaysRemainingText(eventDate) {
293
+ const days = getDaysRemaining(eventDate);
294
+ if (days < 0) return 'Event passed';
295
+ if (days === 0) return 'Today!';
296
+ if (days === 1) return 'Tomorrow';
297
+ return `${days} days remaining`;
298
+ }
299
+
300
  function updateEventsList() {
301
+ const eventsContainer = document.getElementById('events-container');
302
  const upcomingEvents = events
303
  .filter(event => new Date(event.date) >= new Date())
304
  .sort((a, b) => new Date(a.date) - new Date(b.date));
 
322
  <span class="w-3 h-3 rounded-full mr-2 bg-${event.color}-500"></span>
323
  ${event.title}
324
  </h4>
325
+ <p class="text-sm text-gray-600">${eventDate.toLocaleDateString()} ${event.time ? 'at ' + event.time : ''}</p>
326
+ <p class="text-xs mt-1 ${getDaysRemaining(eventDate) <= 3 ? 'text-red-500' : 'text-indigo-500'}">
327
+ ${getDaysRemainingText(eventDate)}
328
+ </p>
329
+ ${event.description ? `<p class="text-sm text-gray-500 mt-1">${event.description}</p>` : ''}
330
  </div>
331
  <button class="text-red-500 hover:text-red-700 delete-event" data-id="${event.id}">
332
  <i data-feather="trash-2" class="w-4 h-4"></i>
style.css CHANGED
@@ -33,6 +33,10 @@ p {
33
  background-color: rgba(243, 244, 246, 0.5);
34
  }
35
 
 
 
 
 
36
  input[type="radio"]:checked + span {
37
  box-shadow: 0 0 0 2px white, 0 0 0 4px currentColor;
38
  }
 
33
  background-color: rgba(243, 244, 246, 0.5);
34
  }
35
 
36
+ .text-xs {
37
+ font-size: 0.75rem;
38
+ line-height: 1rem;
39
+ }
40
  input[type="radio"]:checked + span {
41
  box-shadow: 0 0 0 2px white, 0 0 0 4px currentColor;
42
  }