/
Wizardd
/
Forms
Обзор
Документация
Войти
/
Wizardd
/
Forms
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
frontend/lib/main.dart
106 строк
3 KB
Sontayr
рефакторинг
12 дек 2025, 21:16
12 дек 2025, 21:16
d8f31f2
Код
Авторство
О чём код?
// lib/main.dart import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_sfu/app/routes/routes.dart'; import 'package:flutter_sfu/app/utils/device_utils.dart'; import 'package:flutter_sfu/app/utils/locator_get_it.dart'; import 'package:flutter_sfu/features/auth/bloc/auth_bloc.dart'; import 'package:flutter_sfu/features/form/api/form_repo.dart'; import 'package:flutter_sfu/features/form/bloc/form_bloc.dart'; import 'package:flutter_sfu/features/theme/bloc/theme_bloc.dart'; import 'package:flutter_sfu/app/theme/app_colors.dart'; Future<void> main() async { WidgetsFlutterBinding.ensureInitialized(); //get_it await setup(); runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return ScreenUtilInit( builder: (context, child) { return MediaQuery( data: MediaQuery.of(context).copyWith(textScaler: TextScaler.noScaling), child: child!, ); }, designSize: kIsWeb || Platform.isAndroid || Platform.isIOS ? DeviceUtils.isTablet(context) ? const Size(920, 1240) : const Size(412, 892) : const Size(412, 892), child: MultiBlocProvider( providers: [ BlocProvider( create: (context) => locator<AuthBloc>()..add(AuthEvent.checkAuthStatus()), ), BlocProvider( create: (context) => FormBloc(FormRepo()), ), // Добавляем провайдер для темы BlocProvider( create: (context) => ThemeBloc(), ), ], child: BlocBuilder<ThemeBloc, ThemeState>( builder: (context, themeState) { return MaterialApp( debugShowCheckedModeBanner: false, theme: _buildLightTheme(), darkTheme: _buildDarkTheme(), themeMode: themeState.isDarkMode ? ThemeMode.dark : ThemeMode.light, routes: routes, ); }, ), ), ); } // Метод для создания светлой темы ThemeData _buildLightTheme() { return ThemeData( colorScheme: ColorScheme.fromSeed( seedColor: AppColors.purpleColor, brightness: Brightness.light, ), useMaterial3: true, scaffoldBackgroundColor: Colors.white, appBarTheme: const AppBarTheme( backgroundColor: Colors.white, foregroundColor: AppColors.textDarkColor, elevation: 0, ), primaryColor: AppColors.purpleColor, ); } ThemeData _buildDarkTheme() { return ThemeData( colorScheme: ColorScheme.fromSeed( seedColor: AppColors.purpleColor, brightness: Brightness.dark, ), useMaterial3: true, scaffoldBackgroundColor: AppColors.buttonNavigationBarColor, appBarTheme: const AppBarTheme( backgroundColor: AppColors.buttonNavigationBarColor, foregroundColor: AppColors.textWhiteColor, elevation: 0, ), primaryColor: AppColors.purpleColor, ); } }