fix: lint

This commit is contained in:
Julien Froidefond
2025-09-16 22:13:28 +02:00
parent 122a47f232
commit 4f137455f4
19 changed files with 290 additions and 105 deletions

View File

@@ -1,6 +1,6 @@
'use client';
import React, { useState, useEffect } from 'react';
import React, { useState } from 'react';
import { Button } from '@/components/ui/Button';
import { Card } from '@/components/ui/Card';
@@ -10,7 +10,11 @@ interface DailyCalendarProps {
dailyDates: string[]; // Liste des dates qui ont des dailies (format YYYY-MM-DD)
}
export function DailyCalendar({ currentDate, onDateSelect, dailyDates }: DailyCalendarProps) {
export function DailyCalendar({
currentDate,
onDateSelect,
dailyDates,
}: DailyCalendarProps) {
const [viewDate, setViewDate] = useState(new Date(currentDate));
// Formatage des dates pour comparaison (éviter le décalage timezone)
@@ -46,31 +50,32 @@ export function DailyCalendar({ currentDate, onDateSelect, dailyDates }: DailyCa
const getDaysInMonth = () => {
const year = viewDate.getFullYear();
const month = viewDate.getMonth();
// Premier jour du mois
const firstDay = new Date(year, month, 1);
// Dernier jour du mois
const lastDay = new Date(year, month + 1, 0);
// Premier lundi de la semaine contenant le premier jour
const startDate = new Date(firstDay);
const dayOfWeek = firstDay.getDay();
const daysToSubtract = dayOfWeek === 0 ? 6 : dayOfWeek - 1; // Lundi = 0
startDate.setDate(firstDay.getDate() - daysToSubtract);
// Générer toutes les dates du calendrier (6 semaines)
const days = [];
const currentDay = new Date(startDate);
for (let i = 0; i < 42; i++) { // 6 semaines × 7 jours
for (let i = 0; i < 42; i++) {
// 6 semaines × 7 jours
days.push(new Date(currentDay));
currentDay.setDate(currentDay.getDate() + 1);
}
return { days, firstDay, lastDay };
};
const { days, firstDay, lastDay } = getDaysInMonth();
const { days } = getDaysInMonth();
const handleDateClick = (date: Date) => {
onDateSelect(date);
@@ -96,7 +101,7 @@ export function DailyCalendar({ currentDate, onDateSelect, dailyDates }: DailyCa
const formatMonthYear = () => {
return viewDate.toLocaleDateString('fr-FR', {
month: 'long',
year: 'numeric'
year: 'numeric',
});
};
@@ -114,11 +119,11 @@ export function DailyCalendar({ currentDate, onDateSelect, dailyDates }: DailyCa
>
</Button>
<h3 className="text-lg font-bold text-[var(--foreground)] capitalize">
{formatMonthYear()}
</h3>
<Button
onClick={goToNextMonth}
variant="ghost"
@@ -131,12 +136,8 @@ export function DailyCalendar({ currentDate, onDateSelect, dailyDates }: DailyCa
{/* Bouton Aujourd'hui */}
<div className="mb-4 text-center">
<Button
onClick={goToToday}
variant="primary"
size="sm"
>
Aujourd'hui
<Button onClick={goToToday} variant="primary" size="sm">
Aujourd&apos;hui
</Button>
</div>
@@ -155,7 +156,6 @@ export function DailyCalendar({ currentDate, onDateSelect, dailyDates }: DailyCa
{/* Grille du calendrier */}
<div className="grid grid-cols-7 gap-1">
{days.map((date, index) => {
const dateKey = formatDateKey(date);
const isCurrentMonthDay = isCurrentMonth(date);
const isTodayDay = isToday(date);
const hasCheckboxes = hasDaily(date);
@@ -167,35 +167,30 @@ export function DailyCalendar({ currentDate, onDateSelect, dailyDates }: DailyCa
onClick={() => handleDateClick(date)}
className={`
relative p-2 text-sm rounded transition-all hover:bg-[var(--muted)]/50
${isCurrentMonthDay
? 'text-[var(--foreground)]'
: 'text-[var(--muted-foreground)]'
${
isCurrentMonthDay
? 'text-[var(--foreground)]'
: 'text-[var(--muted-foreground)]'
}
${isTodayDay
? 'bg-[var(--primary)]/20 border border-[var(--primary)]'
: ''
}
${isSelectedDay
? 'bg-[var(--primary)] text-white'
: ''
}
${hasCheckboxes
? 'font-bold'
: ''
${
isTodayDay
? 'bg-[var(--primary)]/20 border border-[var(--primary)]'
: ''
}
${isSelectedDay ? 'bg-[var(--primary)] text-white' : ''}
${hasCheckboxes ? 'font-bold' : ''}
`}
>
{date.getDate()}
{/* Indicateur de daily existant */}
{hasCheckboxes && (
<div className={`
<div
className={`
absolute bottom-1 right-1 w-2 h-2 rounded-full
${isSelectedDay
? 'bg-white'
: 'bg-[var(--primary)]'
}
`} />
${isSelectedDay ? 'bg-white' : 'bg-[var(--primary)]'}
`}
/>
)}
</button>
);
@@ -210,7 +205,7 @@ export function DailyCalendar({ currentDate, onDateSelect, dailyDates }: DailyCa
</div>
<div className="flex items-center gap-2">
<div className="w-4 h-4 rounded border border-[var(--primary)] bg-[var(--primary)]/20"></div>
<span>Aujourd'hui</span>
<span>Aujourd&apos;hui</span>
</div>
</div>
</Card>