From c91155ee61b21a14ea9450bbaa40d8f368c72d3f Mon Sep 17 00:00:00 2001 From: Achintha Isuru Date: Tue, 27 Jan 2026 15:13:24 -0500 Subject: [PATCH] feat: add success and error feedback for experience submission in ExperiencePage --- .../presentation/pages/experience_page.dart | 50 ++++++++++--------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/presentation/pages/experience_page.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/presentation/pages/experience_page.dart index b001a90b..65e19d44 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/presentation/pages/experience_page.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/presentation/pages/experience_page.dart @@ -57,10 +57,17 @@ class ExperiencePage extends StatelessWidget { create: (context) => Modular.get(), child: BlocConsumer( listener: (context, state) { - if (state.status == ExperienceStatus.success) { - Modular.to.pop(); - } - }, + if (state.status == ExperienceStatus.success) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Experience saved successfully')), + ); + Modular.to.pop(); + } else if (state.status == ExperienceStatus.failure) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text(state.errorMessage ?? 'An error occurred')), + ); + } + }, builder: (context, state) { return Column( children: [ @@ -166,25 +173,22 @@ class ExperiencePage extends StatelessWidget { border: Border(top: BorderSide(color: UiColors.border)), ), child: SafeArea( - child: SizedBox( - width: double.infinity, - child: UiButton.primary( - onPressed: state.status == ExperienceStatus.loading - ? null - : () => BlocProvider.of(context).add(ExperienceSubmitted()), - fullWidth: true, - text: state.status == ExperienceStatus.loading ? null : i18n.save_button, - child: state.status == ExperienceStatus.loading - ? SizedBox( - height: 20.0, - width: 20.0, - child: CircularProgressIndicator( - strokeWidth: 2, - valueColor: AlwaysStoppedAnimation(UiColors.white), // UiColors.primaryForeground is white mostly - ), - ) - : null, - ), + child: UiButton.primary( + onPressed: state.status == ExperienceStatus.loading + ? null + : () => BlocProvider.of(context).add(ExperienceSubmitted()), + fullWidth: true, + text: state.status == ExperienceStatus.loading ? null : i18n.save_button, + child: state.status == ExperienceStatus.loading + ? SizedBox( + height: 20.0, + width: 20.0, + child: CircularProgressIndicator( + strokeWidth: 2, + valueColor: AlwaysStoppedAnimation(UiColors.white), // UiColors.primaryForeground is white mostly + ), + ) + : null, ), ), );