refactor(app): обновить структуру приложения и удалить устаревшие провайдеры (#44)

* refactor(app): обновить структуру приложения и удалить устаревшие провайдеры
* refactor(runner): упростить обработку ошибок и улучшить логирование времени инициализации
* refactor(runner): улучшить порядок инициализации приложения и обработку ошибок
* refactor(app): исправить контекст MediaQuery для предотвращения перерисовки
* refactor(pp): удалить главный виджет приложения и заменить его на AppRoot
* docs(copilot-instructions): уточнить правила проведения Code Review на русском языке
* refactor(linter): добавить правило avoid_catches_without_on_clauses для улучшения обработки исключений

---------

Co-authored-by: petrovyuri <petrovyuri@example.com>
This commit is contained in:
Yuri Petrov
2025-12-11 21:18:24 +03:00
committed by GitHub
parent 84f7fa8889
commit 6500b917c5
18 changed files with 137 additions and 299 deletions

View File

@@ -1,14 +1,28 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:friflex_starter/app/theme/theme_notifier.dart';
import 'package:friflex_starter/di/di_container.dart';
import 'package:friflex_starter/features/update/domain/state/cubit/update_cubit.dart';
import 'package:friflex_starter/l10n/localization_notifier.dart';
import 'package:provider/provider.dart';
/// Класс для добавления провайдеров темы и локализации
/// {@template app_providers}
/// Класс для добавления зависимостей приложения
/// {@endtemplate}
final class AppProviders extends StatelessWidget {
const AppProviders({required this.child, super.key});
/// {@macro app_providers}
const AppProviders({
required this.child,
required this.diContainer,
super.key,
});
/// Виджет, который будет отображаться внутри провайдеров
final Widget child;
/// Контейнер зависимостей
final DiContainer diContainer;
@override
Widget build(BuildContext context) {
return MultiProvider(
@@ -19,6 +33,10 @@ final class AppProviders extends StatelessWidget {
ChangeNotifierProvider(
create: (_) => LocalizationNotifier(),
), // Провайдер для локализации
Provider.value(value: diContainer), // Передаем контейнер зависимостей
BlocProvider(
create: (_) => UpdateCubit(diContainer.repositories.updateRepository),
),
],
child: child,
);