fix(#146): densifier la liste et corriger l'affichage des responsables.
Les cartes compactes montrent plus d'enfants d'un coup ; le nom ne monopolise plus la largeur au détriment des infos. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
2d80ad0d7e
commit
3277f77846
@ -35,6 +35,7 @@ class AdminEnfantUserCard extends StatelessWidget {
|
||||
final List<Widget> actions;
|
||||
final VoidCallback? onCardTap;
|
||||
final EdgeInsetsGeometry? margin;
|
||||
final EdgeInsetsGeometry? contentPadding;
|
||||
|
||||
const AdminEnfantUserCard({
|
||||
super.key,
|
||||
@ -44,6 +45,7 @@ class AdminEnfantUserCard extends StatelessWidget {
|
||||
this.actions = const [],
|
||||
this.onCardTap,
|
||||
this.margin,
|
||||
this.contentPadding,
|
||||
});
|
||||
|
||||
factory AdminEnfantUserCard.fromEnfant(
|
||||
@ -52,6 +54,7 @@ class AdminEnfantUserCard extends StatelessWidget {
|
||||
List<Widget> actions = const [],
|
||||
VoidCallback? onCardTap,
|
||||
EdgeInsetsGeometry? margin,
|
||||
EdgeInsetsGeometry? contentPadding,
|
||||
}) {
|
||||
final parents = enfant.parentLinks
|
||||
.map((l) => l.parentName ?? 'Parent')
|
||||
@ -72,6 +75,7 @@ class AdminEnfantUserCard extends StatelessWidget {
|
||||
actions: actions,
|
||||
onCardTap: onCardTap,
|
||||
margin: margin,
|
||||
contentPadding: contentPadding,
|
||||
);
|
||||
}
|
||||
|
||||
@ -81,6 +85,7 @@ class AdminEnfantUserCard extends StatelessWidget {
|
||||
List<Widget> actions = const [],
|
||||
VoidCallback? onCardTap,
|
||||
EdgeInsetsGeometry? margin,
|
||||
EdgeInsetsGeometry? contentPadding,
|
||||
}) {
|
||||
return AdminEnfantUserCard(
|
||||
title: child.fullName,
|
||||
@ -94,6 +99,7 @@ class AdminEnfantUserCard extends StatelessWidget {
|
||||
actions: actions,
|
||||
onCardTap: onCardTap,
|
||||
margin: margin,
|
||||
contentPadding: contentPadding,
|
||||
);
|
||||
}
|
||||
|
||||
@ -107,6 +113,7 @@ class AdminEnfantUserCard extends StatelessWidget {
|
||||
actions: actions,
|
||||
onCardTap: onCardTap,
|
||||
margin: margin,
|
||||
contentPadding: contentPadding,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -53,7 +53,11 @@ class AdminSelectEnfantModal {
|
||||
return AdminEnfantUserCard.fromEnfant(
|
||||
e,
|
||||
onCardTap: onSelect,
|
||||
margin: const EdgeInsets.only(bottom: 6),
|
||||
margin: const EdgeInsets.only(bottom: 4),
|
||||
contentPadding: const EdgeInsets.symmetric(
|
||||
horizontal: 10,
|
||||
vertical: 5,
|
||||
),
|
||||
actions: [
|
||||
IconButton(
|
||||
icon: const Icon(Icons.add_link),
|
||||
|
||||
@ -52,8 +52,8 @@ class AdminSelectListModal<T> extends StatefulWidget {
|
||||
this.emptyMessage = 'Aucun élément disponible',
|
||||
this.noResultsMessage = 'Aucun résultat pour cette recherche',
|
||||
this.modalWidth = 930,
|
||||
this.cardExtent = 70,
|
||||
this.minVisibleCards = 5,
|
||||
this.cardExtent = 52,
|
||||
this.minVisibleCards = 8,
|
||||
this.toggleFilter,
|
||||
});
|
||||
|
||||
@ -71,8 +71,8 @@ class AdminSelectListModal<T> extends StatefulWidget {
|
||||
String emptyMessage = 'Aucun élément disponible',
|
||||
String noResultsMessage = 'Aucun résultat pour cette recherche',
|
||||
double modalWidth = 930,
|
||||
double cardExtent = 70,
|
||||
int minVisibleCards = 5,
|
||||
double cardExtent = 52,
|
||||
int minVisibleCards = 8,
|
||||
AdminSelectToggleFilter<T>? toggleFilter,
|
||||
}) {
|
||||
return showDialog<T>(
|
||||
|
||||
@ -15,6 +15,7 @@ class AdminUserCard extends StatefulWidget {
|
||||
final String? vigilanceTooltip;
|
||||
final VoidCallback? onCardTap;
|
||||
final EdgeInsetsGeometry? margin;
|
||||
final EdgeInsetsGeometry? contentPadding;
|
||||
|
||||
const AdminUserCard({
|
||||
super.key,
|
||||
@ -30,6 +31,7 @@ class AdminUserCard extends StatefulWidget {
|
||||
this.vigilanceTooltip,
|
||||
this.onCardTap,
|
||||
this.margin,
|
||||
this.contentPadding,
|
||||
});
|
||||
|
||||
@override
|
||||
@ -69,7 +71,8 @@ class _AdminUserCardState extends State<AdminUserCard> {
|
||||
side: BorderSide(color: widget.borderColor ?? Colors.grey.shade300),
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 9),
|
||||
padding: widget.contentPadding ??
|
||||
const EdgeInsets.symmetric(horizontal: 12, vertical: 9),
|
||||
child: Row(
|
||||
children: [
|
||||
_buildAvatar(avatarUrl),
|
||||
@ -88,7 +91,10 @@ class _AdminUserCardState extends State<AdminUserCard> {
|
||||
Expanded(
|
||||
child: Row(
|
||||
children: [
|
||||
// flex: 0 → largeur du nom ; le reste va aux infos
|
||||
// (évite le partage 50/50 qui tronque « Responsables »).
|
||||
Flexible(
|
||||
flex: 0,
|
||||
fit: FlexFit.loose,
|
||||
child: Text(
|
||||
widget.title.isNotEmpty ? widget.title : 'Sans nom',
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user