feat(features): refontes adhesions/admin/auth/backup/contributions/dashboard/epargne/events

- adhesions : bloc complet avec events/states/model, dialogs paiement/rejet
- admin : users bloc, user management list/detail pages
- authentication : bloc + keycloak auth service + webview
- backup : bloc complet, repository, models
- contributions : bloc + widgets + export
- dashboard : widgets connectés (activities, events, notifications, search)
  + charts + monitoring + shortcuts
- epargne : repository, transactions, dialogs
- events : bloc complet, pages (detail, connected, wrapper), models
This commit is contained in:
dahoud
2026-04-15 20:26:48 +00:00
parent 45dcd2171e
commit 120434aba0
36 changed files with 903 additions and 1411 deletions

View File

@@ -125,9 +125,9 @@ class _DashboardSearchWidgetState extends State<DashboardSearchWidget>
decoration: BoxDecoration(
color: Theme.of(context).cardColor,
borderRadius: BorderRadius.circular(12),
boxShadow: _isExpanded
? [BoxShadow(color: Colors.black.withOpacity(0.1), blurRadius: 10, offset: const Offset(0, 4))]
: [BoxShadow(color: Colors.black.withOpacity(0.05), blurRadius: 5, offset: const Offset(0, 2))],
boxShadow: _isExpanded
? [BoxShadow(color: AppColors.shadowMedium, blurRadius: 10, offset: const Offset(0, 4))]
: [BoxShadow(color: AppColors.shadow, blurRadius: 5, offset: const Offset(0, 2))],
),
child: TextField(
controller: _searchController,
@@ -141,11 +141,11 @@ class _DashboardSearchWidgetState extends State<DashboardSearchWidget>
decoration: InputDecoration(
hintText: widget.hintText ?? 'Rechercher...',
hintStyle: AppTypography.bodyTextSmall.copyWith(
color: AppColors.textSecondaryLight,
color: AppColors.textSecondary,
),
prefixIcon: Icon(
Icons.search_outlined,
color: _isExpanded ? AppColors.primaryGreen : AppColors.textSecondaryLight,
color: _isExpanded ? AppColors.primary : AppColors.textSecondary,
size: 20,
),
suffixIcon: _searchController.text.isNotEmpty
@@ -156,7 +156,7 @@ class _DashboardSearchWidgetState extends State<DashboardSearchWidget>
},
icon: const Icon(
Icons.close_outlined,
color: AppColors.textSecondaryLight,
color: AppColors.textSecondary,
size: 18,
),
)
@@ -168,7 +168,7 @@ class _DashboardSearchWidgetState extends State<DashboardSearchWidget>
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(12),
borderSide: const BorderSide(
color: AppColors.primaryGreen,
color: AppColors.primary,
width: 1.5,
),
),
@@ -195,7 +195,7 @@ class _DashboardSearchWidgetState extends State<DashboardSearchWidget>
borderRadius: BorderRadius.circular(12),
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.1),
color: AppColors.shadowMedium,
blurRadius: 10,
offset: const Offset(0, 4),
),
@@ -227,7 +227,7 @@ class _DashboardSearchWidgetState extends State<DashboardSearchWidget>
? null
: const Border(
bottom: BorderSide(
color: AppColors.lightBorder,
color: AppColors.border,
width: 1,
),
),
@@ -263,7 +263,7 @@ class _DashboardSearchWidgetState extends State<DashboardSearchWidget>
Text(
suggestion.subtitle,
style: AppTypography.subtitleSmall.copyWith(
color: AppColors.textSecondaryLight,
color: AppColors.textSecondary,
fontSize: 10,
),
),
@@ -273,7 +273,7 @@ class _DashboardSearchWidgetState extends State<DashboardSearchWidget>
),
const Icon(
Icons.chevron_right_outlined,
color: AppColors.textSecondaryLight,
color: AppColors.textSecondary,
size: 16,
),
],
@@ -288,14 +288,14 @@ class _DashboardSearchWidgetState extends State<DashboardSearchWidget>
title: 'Membres',
subtitle: 'Rechercher des membres',
icon: Icons.people_outline,
color: AppColors.primaryGreen,
color: AppColors.primary,
onTap: () => Navigator.of(context).push(MaterialPageRoute<void>(builder: (_) => const MembersPageWrapper())),
),
SearchSuggestion(
title: 'Événements',
subtitle: 'Trouver des événements',
icon: Icons.event_outlined,
color: AppColors.brandGreen,
color: AppColors.primaryDark,
onTap: () => Navigator.of(context).push(MaterialPageRoute<void>(builder: (_) => const EventsPageWrapper())),
),
SearchSuggestion(
@@ -316,7 +316,7 @@ class _DashboardSearchWidgetState extends State<DashboardSearchWidget>
title: 'Paramètres',
subtitle: 'Configuration système',
icon: Icons.settings_outlined,
color: AppColors.textSecondaryLight,
color: AppColors.textSecondary,
onTap: () => Navigator.of(context).push(MaterialPageRoute<void>(builder: (_) => const SystemSettingsPage())),
),
];