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:
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user