feat(#142): ouvrir la modale au clic sur les cartes du dashboard admin.

Unifie le comportement des listes Parents, AM, Enfants, Gestionnaires, Admins et À valider avec le bouton d'action au survol.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-11 23:18:40 +02:00
co-authored by Cursor
parent 8ed68797aa
commit 7b69f27ca5
8 changed files with 20 additions and 2 deletions
@@ -33,6 +33,7 @@ class AdminEnfantUserCard extends StatelessWidget {
final String? photoUrl;
final List<String> subtitleLines;
final List<Widget> actions;
final VoidCallback? onCardTap;
const AdminEnfantUserCard({
super.key,
@@ -40,12 +41,14 @@ class AdminEnfantUserCard extends StatelessWidget {
this.photoUrl,
required this.subtitleLines,
this.actions = const [],
this.onCardTap,
});
factory AdminEnfantUserCard.fromEnfant(
EnfantAdminModel enfant, {
List<String> extraSubtitleLines = const [],
List<Widget> actions = const [],
VoidCallback? onCardTap,
}) {
final parents = enfant.parentLinks
.map((l) => l.parentName ?? 'Parent')
@@ -64,6 +67,7 @@ class AdminEnfantUserCard extends StatelessWidget {
],
),
actions: actions,
onCardTap: onCardTap,
);
}
@@ -71,6 +75,7 @@ class AdminEnfantUserCard extends StatelessWidget {
ParentChildSummary child, {
List<String> extraSubtitleLines = const [],
List<Widget> actions = const [],
VoidCallback? onCardTap,
}) {
return AdminEnfantUserCard(
title: child.fullName,
@@ -82,6 +87,7 @@ class AdminEnfantUserCard extends StatelessWidget {
extra: extraSubtitleLines,
),
actions: actions,
onCardTap: onCardTap,
);
}
@@ -93,6 +99,7 @@ class AdminEnfantUserCard extends StatelessWidget {
avatarUrl: photoUrl,
subtitleLines: subtitleLines,
actions: actions,
onCardTap: onCardTap,
);
}
}
@@ -13,6 +13,7 @@ class AdminUserCard extends StatefulWidget {
final Color? titleColor;
final Color? infoColor;
final String? vigilanceTooltip;
final VoidCallback? onCardTap;
const AdminUserCard({
super.key,
@@ -26,6 +27,7 @@ class AdminUserCard extends StatefulWidget {
this.titleColor,
this.infoColor,
this.vigilanceTooltip,
this.onCardTap,
});
@override
@@ -46,11 +48,14 @@ class _AdminUserCardState extends State<AdminUserCard> {
return MouseRegion(
onEnter: (_) => setState(() => _isHovered = true),
onExit: (_) => setState(() => _isHovered = false),
cursor: widget.onCardTap != null
? SystemMouseCursors.click
: MouseCursor.defer,
child: Material(
color: Colors.transparent,
borderRadius: BorderRadius.circular(10),
child: InkWell(
onTap: () {},
onTap: widget.onCardTap,
borderRadius: BorderRadius.circular(10),
hoverColor: const Color(0x149CC5C0),
child: Card(