feat(#207): polish affichage bulles soin + icônes sous-types

Layout type congés (date/heure puis détail italique), assets flacon/pansement/thermo_verre.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-10-09 16:46:29 +02:00
co-authored by Cursor
parent cec1fc2ba7
commit e6be1dffc4
5 changed files with 75 additions and 16 deletions
@@ -612,12 +612,15 @@ class _BulleTile extends StatelessWidget {
}
String _fmtPeriodeUneLigne() {
// Si c'est un soin_enfant en singleDay, on affiche juste "Le ..." ou un résumé si pertinent
// Soin : « Le 08 octobre 2026 à 18h19 » (détail en italique sous la ligne).
if (card.isSoinEnfant) {
final resume = card.resumerSoin;
final jour = card.dateDebut != null ? 'Le ${_fmtLong(card.dateDebut)}' : '';
if (resume != null) return '$jour\n$resume';
return jour;
final jour = card.dateDebut != null
? 'Le ${_fmtLong(card.dateDebut)}'
: '';
final h = card.heureReleveAffichee;
if (jour.isEmpty) return h != null ? 'À $h' : '';
if (h == null || h.isEmpty) return jour;
return '$jour à $h';
}
final d1 = DateTime.tryParse(card.dateDebut ?? '');
@@ -723,8 +726,6 @@ class _BulleTile extends StatelessWidget {
Expanded(
child: Text(
periode,
maxLines: 2,
overflow: TextOverflow.ellipsis,
style: GoogleFonts.merienda(
fontSize: 15,
fontWeight: FontWeight.w600,
@@ -736,14 +737,27 @@ class _BulleTile extends StatelessWidget {
],
),
],
if (card.isSoinEnfant &&
(card.detailSoin?.trim().isNotEmpty ?? false)) ...[
const SizedBox(height: 8),
Text(
card.detailSoin!,
softWrap: true,
style: GoogleFonts.merriweather(
fontSize: 13,
fontStyle: FontStyle.italic,
height: 1.35,
color: encre.ink,
),
),
],
if (card.isCongeAm &&
card.statut == CarteStatut.refusee &&
card.motifRefus != null) ...[
const SizedBox(height: 8),
Text(
'Motif : ${card.motifRefus}',
maxLines: 4,
overflow: TextOverflow.ellipsis,
softWrap: true,
style: GoogleFonts.merriweather(
fontSize: 13,
fontStyle: FontStyle.italic,