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 List<Widget> actions;
|
||||||
final VoidCallback? onCardTap;
|
final VoidCallback? onCardTap;
|
||||||
final EdgeInsetsGeometry? margin;
|
final EdgeInsetsGeometry? margin;
|
||||||
|
final EdgeInsetsGeometry? contentPadding;
|
||||||
|
|
||||||
const AdminEnfantUserCard({
|
const AdminEnfantUserCard({
|
||||||
super.key,
|
super.key,
|
||||||
@ -44,6 +45,7 @@ class AdminEnfantUserCard extends StatelessWidget {
|
|||||||
this.actions = const [],
|
this.actions = const [],
|
||||||
this.onCardTap,
|
this.onCardTap,
|
||||||
this.margin,
|
this.margin,
|
||||||
|
this.contentPadding,
|
||||||
});
|
});
|
||||||
|
|
||||||
factory AdminEnfantUserCard.fromEnfant(
|
factory AdminEnfantUserCard.fromEnfant(
|
||||||
@ -52,6 +54,7 @@ class AdminEnfantUserCard extends StatelessWidget {
|
|||||||
List<Widget> actions = const [],
|
List<Widget> actions = const [],
|
||||||
VoidCallback? onCardTap,
|
VoidCallback? onCardTap,
|
||||||
EdgeInsetsGeometry? margin,
|
EdgeInsetsGeometry? margin,
|
||||||
|
EdgeInsetsGeometry? contentPadding,
|
||||||
}) {
|
}) {
|
||||||
final parents = enfant.parentLinks
|
final parents = enfant.parentLinks
|
||||||
.map((l) => l.parentName ?? 'Parent')
|
.map((l) => l.parentName ?? 'Parent')
|
||||||
@ -72,6 +75,7 @@ class AdminEnfantUserCard extends StatelessWidget {
|
|||||||
actions: actions,
|
actions: actions,
|
||||||
onCardTap: onCardTap,
|
onCardTap: onCardTap,
|
||||||
margin: margin,
|
margin: margin,
|
||||||
|
contentPadding: contentPadding,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -81,6 +85,7 @@ class AdminEnfantUserCard extends StatelessWidget {
|
|||||||
List<Widget> actions = const [],
|
List<Widget> actions = const [],
|
||||||
VoidCallback? onCardTap,
|
VoidCallback? onCardTap,
|
||||||
EdgeInsetsGeometry? margin,
|
EdgeInsetsGeometry? margin,
|
||||||
|
EdgeInsetsGeometry? contentPadding,
|
||||||
}) {
|
}) {
|
||||||
return AdminEnfantUserCard(
|
return AdminEnfantUserCard(
|
||||||
title: child.fullName,
|
title: child.fullName,
|
||||||
@ -94,6 +99,7 @@ class AdminEnfantUserCard extends StatelessWidget {
|
|||||||
actions: actions,
|
actions: actions,
|
||||||
onCardTap: onCardTap,
|
onCardTap: onCardTap,
|
||||||
margin: margin,
|
margin: margin,
|
||||||
|
contentPadding: contentPadding,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -107,6 +113,7 @@ class AdminEnfantUserCard extends StatelessWidget {
|
|||||||
actions: actions,
|
actions: actions,
|
||||||
onCardTap: onCardTap,
|
onCardTap: onCardTap,
|
||||||
margin: margin,
|
margin: margin,
|
||||||
|
contentPadding: contentPadding,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -53,7 +53,11 @@ class AdminSelectEnfantModal {
|
|||||||
return AdminEnfantUserCard.fromEnfant(
|
return AdminEnfantUserCard.fromEnfant(
|
||||||
e,
|
e,
|
||||||
onCardTap: onSelect,
|
onCardTap: onSelect,
|
||||||
margin: const EdgeInsets.only(bottom: 6),
|
margin: const EdgeInsets.only(bottom: 4),
|
||||||
|
contentPadding: const EdgeInsets.symmetric(
|
||||||
|
horizontal: 10,
|
||||||
|
vertical: 5,
|
||||||
|
),
|
||||||
actions: [
|
actions: [
|
||||||
IconButton(
|
IconButton(
|
||||||
icon: const Icon(Icons.add_link),
|
icon: const Icon(Icons.add_link),
|
||||||
|
|||||||
@ -52,8 +52,8 @@ class AdminSelectListModal<T> extends StatefulWidget {
|
|||||||
this.emptyMessage = 'Aucun élément disponible',
|
this.emptyMessage = 'Aucun élément disponible',
|
||||||
this.noResultsMessage = 'Aucun résultat pour cette recherche',
|
this.noResultsMessage = 'Aucun résultat pour cette recherche',
|
||||||
this.modalWidth = 930,
|
this.modalWidth = 930,
|
||||||
this.cardExtent = 70,
|
this.cardExtent = 52,
|
||||||
this.minVisibleCards = 5,
|
this.minVisibleCards = 8,
|
||||||
this.toggleFilter,
|
this.toggleFilter,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -71,8 +71,8 @@ class AdminSelectListModal<T> extends StatefulWidget {
|
|||||||
String emptyMessage = 'Aucun élément disponible',
|
String emptyMessage = 'Aucun élément disponible',
|
||||||
String noResultsMessage = 'Aucun résultat pour cette recherche',
|
String noResultsMessage = 'Aucun résultat pour cette recherche',
|
||||||
double modalWidth = 930,
|
double modalWidth = 930,
|
||||||
double cardExtent = 70,
|
double cardExtent = 52,
|
||||||
int minVisibleCards = 5,
|
int minVisibleCards = 8,
|
||||||
AdminSelectToggleFilter<T>? toggleFilter,
|
AdminSelectToggleFilter<T>? toggleFilter,
|
||||||
}) {
|
}) {
|
||||||
return showDialog<T>(
|
return showDialog<T>(
|
||||||
|
|||||||
@ -15,6 +15,7 @@ class AdminUserCard extends StatefulWidget {
|
|||||||
final String? vigilanceTooltip;
|
final String? vigilanceTooltip;
|
||||||
final VoidCallback? onCardTap;
|
final VoidCallback? onCardTap;
|
||||||
final EdgeInsetsGeometry? margin;
|
final EdgeInsetsGeometry? margin;
|
||||||
|
final EdgeInsetsGeometry? contentPadding;
|
||||||
|
|
||||||
const AdminUserCard({
|
const AdminUserCard({
|
||||||
super.key,
|
super.key,
|
||||||
@ -30,6 +31,7 @@ class AdminUserCard extends StatefulWidget {
|
|||||||
this.vigilanceTooltip,
|
this.vigilanceTooltip,
|
||||||
this.onCardTap,
|
this.onCardTap,
|
||||||
this.margin,
|
this.margin,
|
||||||
|
this.contentPadding,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -69,7 +71,8 @@ class _AdminUserCardState extends State<AdminUserCard> {
|
|||||||
side: BorderSide(color: widget.borderColor ?? Colors.grey.shade300),
|
side: BorderSide(color: widget.borderColor ?? Colors.grey.shade300),
|
||||||
),
|
),
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 9),
|
padding: widget.contentPadding ??
|
||||||
|
const EdgeInsets.symmetric(horizontal: 12, vertical: 9),
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
_buildAvatar(avatarUrl),
|
_buildAvatar(avatarUrl),
|
||||||
@ -88,7 +91,10 @@ class _AdminUserCardState extends State<AdminUserCard> {
|
|||||||
Expanded(
|
Expanded(
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
|
// flex: 0 → largeur du nom ; le reste va aux infos
|
||||||
|
// (évite le partage 50/50 qui tronque « Responsables »).
|
||||||
Flexible(
|
Flexible(
|
||||||
|
flex: 0,
|
||||||
fit: FlexFit.loose,
|
fit: FlexFit.loose,
|
||||||
child: Text(
|
child: Text(
|
||||||
widget.title.isNotEmpty ? widget.title : 'Sans nom',
|
widget.title.isNotEmpty ? widget.title : 'Sans nom',
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user