diff --git a/lib/features/menu/bloc/profile_bloc/profile_bloc.dart b/lib/features/menu/bloc/profile_bloc/profile_bloc.dart index 603fe20..cad8762 100644 --- a/lib/features/menu/bloc/profile_bloc/profile_bloc.dart +++ b/lib/features/menu/bloc/profile_bloc/profile_bloc.dart @@ -23,8 +23,7 @@ class ProfileBloc extends Bloc { String timeZoneSelected = ''; String regionSelected = ''; final TextEditingController searchController = TextEditingController(); - final TextEditingController nameController = TextEditingController( - text: '${HomeCubit.user!.firstName} ${HomeCubit.user!.lastName}'); + final TextEditingController nameController = TextEditingController(text: '${HomeCubit.user!.firstName} ${HomeCubit.user!.lastName}'); List? timeZoneList; List? regionList; @@ -240,25 +239,17 @@ class ProfileBloc extends Bloc { String? fullNameValidator(String? value) { if (value == null) return 'Full name is required'; - final withoutExtraSpaces = value.replaceAll(RegExp(r"\s+"), ' ').trim(); - if (withoutExtraSpaces.length < 2 || withoutExtraSpaces.length > 30) { return 'Full name must be between 2 and 30 characters long'; } - // Test if it contains anything but alphanumeric spaces and single quote - if (RegExp(r"/[^ a-zA-Z0-9-\']/").hasMatch(withoutExtraSpaces)) { return 'Only alphanumeric characters, space, dash and single quote are allowed'; } - final parts = withoutExtraSpaces.split(' '); - if (parts.length < 2) return 'Full name must contain first and last names'; - - if (parts.length > 3) return 'Full name can at most contain 3 parts'; - + if (parts.length > 2) return 'Full name can at most contain 3 parts'; if (parts.any((part) => part.length < 2 || part.length > 30)) { return 'Full name parts must be between 2 and 30 characters long'; } diff --git a/lib/features/menu/view/widgets/profile/region_page.dart b/lib/features/menu/view/widgets/profile/region_page.dart index 6a5ae74..0212cb2 100644 --- a/lib/features/menu/view/widgets/profile/region_page.dart +++ b/lib/features/menu/view/widgets/profile/region_page.dart @@ -24,9 +24,7 @@ class RegionPage extends StatelessWidget { ); } if (state is SaveState) { - new Future.delayed(const Duration(milliseconds: 500), () { - Navigator.of(context).pop(true); - }); + Navigator.of(context).pop(true); } }, builder: (context, state) { diff --git a/lib/features/menu/view/widgets/profile/time_zone_screen_page.dart b/lib/features/menu/view/widgets/profile/time_zone_screen_page.dart index 6fd50b0..747d89f 100644 --- a/lib/features/menu/view/widgets/profile/time_zone_screen_page.dart +++ b/lib/features/menu/view/widgets/profile/time_zone_screen_page.dart @@ -17,7 +17,7 @@ class TimeZoneScreenPage extends StatelessWidget { return BlocProvider( create: (BuildContext context) => ProfileBloc()..add(TimeZoneInitialEvent()), child: - BlocConsumer(listener: (context, state) { + BlocConsumer(listener: (context, state) { if (state is FailedState) { ScaffoldMessenger.of(context).showSnackBar( SnackBar( @@ -26,10 +26,8 @@ class TimeZoneScreenPage extends StatelessWidget { ), ); }if (state is SaveState) { - new Future.delayed(const Duration(milliseconds: 500), () { - Navigator.of(context).pop(true); - }); - } + Navigator.of(context).pop(true); + } }, builder: (context, state) { final profileBloc = BlocProvider.of(context); @@ -38,8 +36,8 @@ class TimeZoneScreenPage extends StatelessWidget { padding: const EdgeInsets.all(0), title: 'Time Zone', child: state is LoadingInitialState - ? const Center(child: CircularProgressIndicator()) - : Column( + ? const Center(child: CircularProgressIndicator()) + : Column( children: [ TextFormField( controller:profileBloc.searchController ,