Skip to content

Commit 89c0d6f

Browse files
committed
fix(settings): handle default language initialization safely
- Replace hardcoded 'en' language code with a safer initialization method - Use fixtures data to find the default language, throwing an error if not found - Add comments to explain the logic for handling missing settings
1 parent d8272c8 commit 89c0d6f

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

lib/settings/bloc/settings_bloc.dart

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ class SettingsBloc extends Bloc<SettingsEvent, SettingsState> {
3535
);
3636
emit(SettingsLoadSuccess(userAppSettings: userAppSettings));
3737
} on NotFoundException {
38+
// If settings are not found, create default settings for the user.
39+
// This ensures that a user always has a valid settings object.
3840
final defaultSettings = UserAppSettings(
3941
id: event.userId!,
4042
displaySettings: const DisplaySettings(
@@ -44,7 +46,12 @@ class SettingsBloc extends Bloc<SettingsEvent, SettingsState> {
4446
textScaleFactor: AppTextScaleFactor.medium,
4547
fontWeight: AppFontWeight.regular,
4648
),
47-
language: 'en',
49+
language: languagesFixturesData.firstWhere(
50+
(l) => l.code == 'en',
51+
orElse: () => throw StateError(
52+
'Default language "en" not found in language fixtures.',
53+
),
54+
),
4855
feedPreferences: const FeedDisplayPreferences(
4956
headlineDensity: HeadlineDensity.standard,
5057
headlineImageStyle: HeadlineImageStyle.largeThumbnail,

0 commit comments

Comments
 (0)