Ajout de statu d'événement (bouton non indéxé sur le status pour le moment

This commit is contained in:
2025-05-28 23:10:43 +02:00
parent 50a38816d3
commit b80a6d2623
5 changed files with 765 additions and 364 deletions

View File

@ -213,6 +213,27 @@ class MonthView extends StatelessWidget {
Widget _buildEventItem(
EventModel event, bool isSelected, DateTime currentDay) {
Color color;
Color textColor;
IconData icon;
switch (event.status) {
case EventStatus.confirmed:
color = Colors.green;
textColor = Colors.white;
icon = Icons.check;
break;
case EventStatus.canceled:
color = Colors.red;
textColor = Colors.white;
icon = Icons.close;
break;
case EventStatus.waitingForApproval:
default:
color = Colors.amber;
textColor = Colors.black;
icon = Icons.hourglass_empty;
break;
}
return GestureDetector(
onTap: () {
onDaySelected(currentDay, currentDay);
@ -222,33 +243,40 @@ class MonthView extends StatelessWidget {
margin: const EdgeInsets.only(bottom: 2),
padding: const EdgeInsets.symmetric(horizontal: 4, vertical: 2),
decoration: BoxDecoration(
color: isSelected
? Colors.white.withAlpha(51)
: AppColors.rouge.withAlpha(26),
color: isSelected ? color.withAlpha(220) : color.withOpacity(0.18),
borderRadius: BorderRadius.circular(4),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(
event.name,
style: TextStyle(
fontSize: 12,
color: isSelected ? Colors.white : AppColors.rouge,
fontWeight: FontWeight.bold,
Icon(icon, color: textColor, size: 16),
const SizedBox(width: 4),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
event.name,
style: TextStyle(
fontSize: 12,
color: textColor,
fontWeight: FontWeight.bold,
),
maxLines: 1,
overflow: TextOverflow.ellipsis,
),
if (CalendarUtils.isMultiDayEvent(event))
Text(
'Jour ${CalendarUtils.calculateDayNumber(event.startDateTime, currentDay)}/${CalendarUtils.calculateTotalDays(event)}',
style: TextStyle(
fontSize: 10,
color: textColor,
),
maxLines: 1,
),
],
),
maxLines: 1,
overflow: TextOverflow.ellipsis,
),
if (CalendarUtils.isMultiDayEvent(event))
Text(
'Jour ${CalendarUtils.calculateDayNumber(event.startDateTime, event.startDateTime)}/${CalendarUtils.calculateTotalDays(event)}',
style: TextStyle(
fontSize: 10,
color: isSelected ? Colors.white : AppColors.rouge,
),
maxLines: 1,
),
],
),
),