refactor(#93): extraire un widget UserList réutilisable
Centralise le pattern d'affichage des listes utilisateurs pour garantir une UI homogène entre gestionnaires, parents, assistantes maternelles et administrateurs. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:p_tits_pas/models/user.dart';
|
||||
import 'package:p_tits_pas/services/user_service.dart';
|
||||
import 'package:p_tits_pas/widgets/admin/common/admin_list_state.dart';
|
||||
import 'package:p_tits_pas/widgets/admin/common/admin_user_card.dart';
|
||||
import 'package:p_tits_pas/widgets/admin/common/user_list.dart';
|
||||
|
||||
class AdminManagementWidget extends StatefulWidget {
|
||||
final String searchQuery;
|
||||
@@ -60,42 +60,32 @@ class _AdminManagementWidgetState extends State<AdminManagementWidget> {
|
||||
return name.contains(query) || email.contains(query);
|
||||
}).toList();
|
||||
|
||||
return Padding(
|
||||
padding: const EdgeInsets.all(16),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||
children: [
|
||||
AdminListState(
|
||||
isLoading: _isLoading,
|
||||
error: _error,
|
||||
isEmpty: filteredAdmins.isEmpty,
|
||||
emptyMessage: 'Aucun administrateur trouvé.',
|
||||
list: ListView.builder(
|
||||
itemCount: filteredAdmins.length,
|
||||
itemBuilder: (context, index) {
|
||||
final user = filteredAdmins[index];
|
||||
return AdminUserCard(
|
||||
title: user.fullName,
|
||||
subtitleLines: [
|
||||
user.email,
|
||||
'Rôle : ${user.role}',
|
||||
],
|
||||
avatarUrl: user.photoUrl,
|
||||
actions: [
|
||||
IconButton(
|
||||
icon: const Icon(Icons.edit),
|
||||
tooltip: 'Modifier',
|
||||
onPressed: () {
|
||||
// TODO: Modifier admin
|
||||
},
|
||||
),
|
||||
],
|
||||
);
|
||||
return UserList(
|
||||
isLoading: _isLoading,
|
||||
error: _error,
|
||||
isEmpty: filteredAdmins.isEmpty,
|
||||
emptyMessage: 'Aucun administrateur trouvé.',
|
||||
itemCount: filteredAdmins.length,
|
||||
itemBuilder: (context, index) {
|
||||
final user = filteredAdmins[index];
|
||||
return AdminUserCard(
|
||||
title: user.fullName,
|
||||
subtitleLines: [
|
||||
user.email,
|
||||
'Rôle : ${user.role}',
|
||||
],
|
||||
avatarUrl: user.photoUrl,
|
||||
actions: [
|
||||
IconButton(
|
||||
icon: const Icon(Icons.edit),
|
||||
tooltip: 'Modifier',
|
||||
onPressed: () {
|
||||
// TODO: Modifier admin
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user