diff --git a/lib/features/dashboard/presentation/pages/role_dashboards/active_member_dashboard.dart b/lib/features/dashboard/presentation/pages/role_dashboards/active_member_dashboard.dart index e61eda6..65b4225 100644 --- a/lib/features/dashboard/presentation/pages/role_dashboards/active_member_dashboard.dart +++ b/lib/features/dashboard/presentation/pages/role_dashboards/active_member_dashboard.dart @@ -40,7 +40,19 @@ class ActiveMemberDashboard extends StatelessWidget { : null; final stats = dashboardData?.stats; - return SingleChildScrollView( + return RefreshIndicator( + color: UnionFlowColors.unionGreen, + onRefresh: () async { + final orgCtx = user?.organizationContexts.isNotEmpty == true + ? user!.organizationContexts.first : null; + context.read().add(LoadDashboardData( + organizationId: orgCtx?.organizationId ?? '', + userId: user?.id ?? '', + )); + await Future.delayed(const Duration(milliseconds: 1200)); + }, + child: SingleChildScrollView( + physics: const AlwaysScrollableScrollPhysics(), padding: const EdgeInsets.all(12), child: Column( crossAxisAlignment: CrossAxisAlignment.start, @@ -220,7 +232,8 @@ class ActiveMemberDashboard extends StatelessWidget { ), ], ), - ); + ), // SingleChildScrollView + ); // RefreshIndicator }, ); }, diff --git a/lib/features/dashboard/presentation/pages/role_dashboards/moderator_dashboard.dart b/lib/features/dashboard/presentation/pages/role_dashboards/moderator_dashboard.dart index 19c8492..914d986 100644 --- a/lib/features/dashboard/presentation/pages/role_dashboards/moderator_dashboard.dart +++ b/lib/features/dashboard/presentation/pages/role_dashboards/moderator_dashboard.dart @@ -43,7 +43,19 @@ class ModeratorDashboard extends StatelessWidget { : null; final stats = dashboardData?.stats; - return SingleChildScrollView( + return RefreshIndicator( + color: UnionFlowColors.unionGreen, + onRefresh: () async { + final orgCtx = user?.organizationContexts.isNotEmpty == true + ? user!.organizationContexts.first : null; + context.read().add(LoadDashboardData( + organizationId: orgCtx?.organizationId ?? '', + userId: user?.id ?? '', + )); + await Future.delayed(const Duration(milliseconds: 1200)); + }, + child: SingleChildScrollView( + physics: const AlwaysScrollableScrollPhysics(), padding: const EdgeInsets.all(12), child: Column( crossAxisAlignment: CrossAxisAlignment.start, @@ -350,7 +362,8 @@ class ModeratorDashboard extends StatelessWidget { ), ], ), - ); + ), // SingleChildScrollView + ); // RefreshIndicator }, ); }, diff --git a/lib/features/dashboard/presentation/pages/role_dashboards/org_admin_dashboard.dart b/lib/features/dashboard/presentation/pages/role_dashboards/org_admin_dashboard.dart index 7ccebfb..de12123 100644 --- a/lib/features/dashboard/presentation/pages/role_dashboards/org_admin_dashboard.dart +++ b/lib/features/dashboard/presentation/pages/role_dashboards/org_admin_dashboard.dart @@ -50,7 +50,17 @@ class OrgAdminDashboard extends StatelessWidget { : null; final stats = dashboardData?.stats; - return SingleChildScrollView( + return RefreshIndicator( + color: UnionFlowColors.gold, + onRefresh: () async { + context.read().add(LoadDashboardData( + organizationId: orgContext?.organizationId ?? '', + userId: user?.id ?? '', + )); + await Future.delayed(const Duration(milliseconds: 1200)); + }, + child: SingleChildScrollView( + physics: const AlwaysScrollableScrollPhysics(), padding: const EdgeInsets.all(12), child: Column( crossAxisAlignment: CrossAxisAlignment.start, @@ -276,7 +286,8 @@ class OrgAdminDashboard extends StatelessWidget { ), ], ), - ); + ), // SingleChildScrollView + ); // RefreshIndicator }, ); }, diff --git a/lib/features/dashboard/presentation/pages/role_dashboards/simple_member_dashboard.dart b/lib/features/dashboard/presentation/pages/role_dashboards/simple_member_dashboard.dart index 1f085a2..c764e00 100644 --- a/lib/features/dashboard/presentation/pages/role_dashboards/simple_member_dashboard.dart +++ b/lib/features/dashboard/presentation/pages/role_dashboards/simple_member_dashboard.dart @@ -39,7 +39,19 @@ class SimpleMemberDashboard extends StatelessWidget { : null; final stats = dashboardData?.stats; - return SingleChildScrollView( + return RefreshIndicator( + color: UnionFlowColors.unionGreen, + onRefresh: () async { + final orgCtx = user?.organizationContexts.isNotEmpty == true + ? user!.organizationContexts.first : null; + context.read().add(LoadDashboardData( + organizationId: orgCtx?.organizationId ?? '', + userId: user?.id ?? '', + )); + await Future.delayed(const Duration(milliseconds: 1200)); + }, + child: SingleChildScrollView( + physics: const AlwaysScrollableScrollPhysics(), padding: const EdgeInsets.all(12), child: Column( crossAxisAlignment: CrossAxisAlignment.start, @@ -180,7 +192,8 @@ class SimpleMemberDashboard extends StatelessWidget { ], ], ), - ); + ), // SingleChildScrollView + ); // RefreshIndicator }, ); },