Adds the ability to manage categories in the settings page. This includes: - Registers CategoryCubit in the dependency injection container. - Introduces a new CategoryListPage for editing categories. - Adds translations for category management related text. - Adds unselected icon color to the theme. - Updates the date format in the transaction dialog.
64 lines
2.2 KiB
Dart
64 lines
2.2 KiB
Dart
import 'package:get_it/get_it.dart';
|
|
|
|
import 'data/database/hive_service.dart';
|
|
import 'data/repositories/hive_category_repository.dart';
|
|
import 'data/repositories/hive_tag_repository.dart';
|
|
import 'data/repositories/hive_transaction_repository.dart';
|
|
import 'data/repositories/hive_user_repository.dart';
|
|
import 'data/repositories/interfaces/icategory_repository.dart';
|
|
import 'data/repositories/interfaces/itag_repository.dart';
|
|
import 'data/repositories/interfaces/itransaction_repository.dart';
|
|
import 'data/repositories/interfaces/iuser_repository.dart';
|
|
import 'logic/auth/auth_bloc.dart';
|
|
import 'logic/category/category_cubit.dart';
|
|
import 'logic/settings/settings_cubit.dart'; // Импортируем SettingsCubit
|
|
import 'logic/sms/sms_cubit.dart';
|
|
import 'logic/transaction/transaction_bloc.dart';
|
|
import 'services/sms_service.dart';
|
|
import 'services/user_service.dart';
|
|
|
|
final getIt = GetIt.instance;
|
|
|
|
Future<void> initDependencies() async {
|
|
// Инициализация Hive
|
|
await HiveService.init();
|
|
|
|
// Регистрация репозиториев
|
|
getIt.registerSingleton<ICategoryRepository>(
|
|
HiveCategoryRepository(HiveService.categories),
|
|
);
|
|
|
|
getIt.registerSingleton<ITagRepository>(HiveTagRepository(HiveService.tags));
|
|
|
|
getIt.registerSingleton<ITransactionRepository>(
|
|
HiveTransactionRepository(HiveService.transactions),
|
|
);
|
|
|
|
getIt.registerSingleton<IUserRepository>(
|
|
HiveUserRepository(HiveService.users),
|
|
);
|
|
|
|
// Services
|
|
getIt.registerSingleton<UserService>(
|
|
UserService(getIt(), getIt(), getIt(), getIt()),
|
|
);
|
|
|
|
getIt.registerSingleton<SmsService>(SmsService());
|
|
|
|
// Регистрация сервисов
|
|
getIt.registerSingleton<SettingsCubit>(
|
|
SettingsCubit(getIt()),
|
|
); // Регистрируем Cubit и передаем IUserRepository
|
|
|
|
// Blocs
|
|
getIt.registerFactory<AuthBloc>(() => AuthBloc(userService: getIt()));
|
|
getIt.registerFactory<TransactionBloc>(
|
|
() => TransactionBloc(transactionRepository: getIt()),
|
|
);
|
|
|
|
getIt.registerFactory<SmsCubit>(() => SmsCubit(getIt()));
|
|
getIt.registerFactory<CategoryCubit>(
|
|
() => CategoryCubit(getIt()),
|
|
); // Регистрируем CategoryCubit с зависимостью от UserService
|
|
}
|