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:
2026-02-23 17:59:03 +01:00
co-authored by Cursor
parent ac3178903d
commit bc8362bdb7
7 changed files with 352 additions and 238 deletions
@@ -1,10 +1,7 @@
import 'package:flutter/material.dart';
import 'package:p_tits_pas/services/configuration_service.dart';
import 'package:p_tits_pas/widgets/admin/assistante_maternelle_management_widget.dart';
import 'package:p_tits_pas/widgets/admin/gestionnaire_management_widget.dart';
import 'package:p_tits_pas/widgets/admin/parent_managmant_widget.dart';
import 'package:p_tits_pas/widgets/admin/admin_management_widget.dart';
import 'package:p_tits_pas/widgets/admin/parametres_panel.dart';
import 'package:p_tits_pas/widgets/admin/user_management_panel.dart';
import 'package:p_tits_pas/widgets/app_footer.dart';
import 'package:p_tits_pas/widgets/admin/dashboard_admin.dart';
@@ -18,7 +15,6 @@ class AdminDashboardScreen extends StatefulWidget {
class _AdminDashboardScreenState extends State<AdminDashboardScreen> {
bool? _setupCompleted;
int mainTabIndex = 0;
int subIndex = 0;
int settingsSubIndex = 0;
@override
@@ -27,6 +23,11 @@ class _AdminDashboardScreenState extends State<AdminDashboardScreen> {
_loadSetupStatus();
}
@override
void dispose() {
super.dispose();
}
Future<void> _loadSetupStatus() async {
try {
final completed = await ConfigurationService.getSetupStatus();
@@ -51,12 +52,6 @@ class _AdminDashboardScreenState extends State<AdminDashboardScreen> {
});
}
void onSubTabChange(int index) {
setState(() {
subIndex = index;
});
}
void onSettingsSubTabChange(int index) {
setState(() {
settingsSubIndex = index;
@@ -89,10 +84,7 @@ class _AdminDashboardScreenState extends State<AdminDashboardScreen> {
body: Column(
children: [
if (mainTabIndex == 0)
DashboardUserManagementSubBar(
selectedSubIndex: subIndex,
onSubTabChange: onSubTabChange,
)
const SizedBox.shrink()
else
DashboardSettingsSubBar(
selectedSubIndex: settingsSubIndex,
@@ -114,17 +106,6 @@ class _AdminDashboardScreenState extends State<AdminDashboardScreen> {
selectedSettingsTabIndex: settingsSubIndex,
);
}
switch (subIndex) {
case 0:
return const GestionnaireManagementWidget();
case 1:
return const ParentManagementWidget();
case 2:
return const AssistanteMaternelleManagementWidget();
case 3:
return const AdminManagementWidget();
default:
return const Center(child: Text('Page non trouvée'));
}
return const AdminUserManagementPanel();
}
}