card event et streak

This commit is contained in:
2026-02-22 08:22:13 +04:00
parent 135e2050f8
commit 398a29900f
2 changed files with 22 additions and 10 deletions

View File

@@ -25,7 +25,7 @@ const accentColor = categoryColors[type] || categoryColors["default"];
<article class="event-card" style={`--accent-color: ${accentColor}`}> <article class="event-card" style={`--accent-color: ${accentColor}`}>
<div class="card-inner"> <div class="card-inner">
<header class="event-header"> <header class="event-header">
<span class="event-type">ÉVÉNEMENT IRL</span> <span class="event-type">{type.toUpperCase()}</span>
<span class="event-status">{status}</span> <span class="event-status">{status}</span>
</header> </header>
@@ -42,7 +42,13 @@ const accentColor = categoryColors[type] || categoryColors["default"];
<p class="summary">{summary}</p> <p class="summary">{summary}</p>
<div class="participants-box"> <div class="participants-box">
<span class="label">Membres impliqués :</span> <span class="label">
{
type === "Festival"
? "Artistes invités :"
: "Membres impliqués :"
}
</span>
<div class="tags"> <div class="tags">
{participants.map((p) => <span class="p-tag">{p}</span>)} {participants.map((p) => <span class="p-tag">{p}</span>)}
</div> </div>

View File

@@ -35,31 +35,37 @@ const getStreak = (name, entries) => {
.reverse(); .reverse();
let streak = 0; let streak = 0;
let today = new Date(); let today = new Date();
// Utiliser Date.UTC pour aligner la date locale avec le format ISO UTC des collections
let checkDate = new Date( let checkDate = new Date(
today.getFullYear(), Date.UTC(today.getFullYear(), today.getMonth(), today.getDate()),
today.getMonth(),
today.getDate(),
); );
let todaySkipped = false;
for (let i = 0; i < 31; i++) { for (let i = 0; i < 31; i++) {
const dateStr = checkDate.toISOString().split("T")[0]; const dateStr = checkDate.toISOString().split("T")[0];
if (uniqueDates.includes(dateStr)) { if (uniqueDates.includes(dateStr)) {
streak++; streak++;
checkDate.setDate(checkDate.getDate() - 1); checkDate.setUTCDate(checkDate.getUTCDate() - 1);
} else { } else {
if (i === 0) { if (i === 0) {
checkDate.setDate(checkDate.getDate() - 1); checkDate.setUTCDate(checkDate.getUTCDate() - 1);
const yesterdayStr = checkDate.toISOString().split("T")[0]; const yesterdayStr = checkDate.toISOString().split("T")[0];
if (uniqueDates.includes(yesterdayStr)) continue; if (uniqueDates.includes(yesterdayStr)) {
todaySkipped = true;
continue;
}
} }
break; break;
} }
} }
// Malus HYG [cite: 103, 106] // Malus HYG [cite: 103, 106]
const shiftDays = todaySkipped ? 1 : 0;
const last7Days = Array.from({ length: 7 }, (_, j) => { const last7Days = Array.from({ length: 7 }, (_, j) => {
let d = new Date(); let d = new Date(
d.setDate(d.getDate() - j); Date.UTC(today.getFullYear(), today.getMonth(), today.getDate()),
);
d.setUTCDate(d.getUTCDate() - (j + shiftDays));
return d.toISOString().split("T")[0]; return d.toISOString().split("T")[0];
}); });