This commit refactors the user management system to utilize UserCubit, improving state management and separation of concerns. - Replaces UserService with UserCubit for managing user state. - Introduces AppSettings and GlobalSettings models and repositories for managing app-level settings and configurations. - Modifies dependency injection to register the new repositories and cubits. - Updates UI components (LoginPage, SettingsPage, HomePage, AddTransactionDialog, CategoryListPage, TagListPage) to interact with UserCubit and SettingsCubit. - Removes direct dependency on UserRepository in favor of UserCubit for accessing user information. - Streamlines the authentication process by using UserCubit to handle user creation and login. - Improves settings management by using dedicated repositories and cubits for app settings.
52 lines
1.1 KiB
Dart
52 lines
1.1 KiB
Dart
part of 'settings_cubit.dart';
|
|
|
|
@immutable
|
|
abstract class SettingsState extends Equatable {
|
|
const SettingsState();
|
|
|
|
@override
|
|
List<Object> get props => [];
|
|
}
|
|
|
|
class SettingsInitial extends SettingsState {
|
|
const SettingsInitial();
|
|
}
|
|
|
|
class SettingsLoading extends SettingsState {}
|
|
|
|
class SettingsLoaded extends SettingsState {
|
|
final bool isDarkMode;
|
|
final String languageCode;
|
|
final String defaultCurrency;
|
|
|
|
const SettingsLoaded({
|
|
required this.isDarkMode,
|
|
required this.languageCode,
|
|
required this.defaultCurrency,
|
|
});
|
|
|
|
@override
|
|
List<Object> get props => [isDarkMode, languageCode, defaultCurrency];
|
|
|
|
SettingsLoaded copyWith({
|
|
bool? isDarkMode,
|
|
String? languageCode,
|
|
String? defaultCurrency,
|
|
}) {
|
|
return SettingsLoaded(
|
|
isDarkMode: isDarkMode ?? this.isDarkMode,
|
|
languageCode: languageCode ?? this.languageCode,
|
|
defaultCurrency: defaultCurrency ?? this.defaultCurrency,
|
|
);
|
|
}
|
|
}
|
|
|
|
class SettingsError extends SettingsState {
|
|
final String message;
|
|
|
|
const SettingsError(this.message);
|
|
|
|
@override
|
|
List<Object> get props => [message];
|
|
}
|