54 lines
1.6 KiB
Dart
54 lines
1.6 KiB
Dart
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,
|
||
),
|
||
],
|
||
);
|
||
}
|
||
}
|