feat(#153): onglet permanent Dossiers (pending + liste unifiée).

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-24 18:40:00 +02:00
co-authored by Cursor
parent 6708f73b06
commit 3fdd913367
5 changed files with 680 additions and 350 deletions
@@ -0,0 +1,53 @@
import 'package:flutter/material.dart';
import 'package:p_tits_pas/widgets/admin/common/admin_user_card.dart';
/// Carte dossier unifiée (#153) — pending et liste complète.
class DossierListCard extends StatelessWidget {
final String numeroDossier;
final String namesLine;
final bool isFamille;
final VoidCallback onOpen;
static const Color familleBg = Color(0xFFF3EEF8);
static const Color familleBorder = Color(0xFFB39DDB);
static const Color familleAccent = Color(0xFF7E57C2);
static const Color amBg = Color(0xFFE8F5F3);
static const Color amBorder = Color(0xFF80CBC4);
static const Color amAccent = Color(0xFF00897B);
const DossierListCard({
super.key,
required this.numeroDossier,
required this.namesLine,
required this.isFamille,
required this.onOpen,
});
@override
Widget build(BuildContext context) {
final bg = isFamille ? familleBg : amBg;
final border = isFamille ? familleBorder : amBorder;
final accent = isFamille ? familleAccent : amAccent;
final num = numeroDossier.trim().isEmpty ? '' : numeroDossier.trim();
final names = namesLine.trim();
return AdminUserCard(
title: num,
subtitleLines: names.isEmpty ? const [] : [names],
fallbackIcon:
isFamille ? Icons.family_restroom_outlined : Icons.person_outline,
backgroundColor: bg,
borderColor: border,
titleColor: accent,
infoColor: Colors.black87,
onCardTap: onOpen,
actions: [
IconButton(
tooltip: 'Ouvrir',
icon: Icon(Icons.open_in_new, size: 20, color: accent),
onPressed: onOpen,
),
],
);
}
}