import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flux/theme/theme.dart'; import 'package:flux/theme/theme_bloc.dart'; import 'package:flux/ui/home_screen.dart'; import 'package:flux/ui/settings/settings.dart'; import 'package:get_it/get_it.dart'; import 'package:shared_preferences/shared_preferences.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); final GetIt getIt = GetIt.instance; getIt.registerSingleton( await SharedPreferences.getInstance(), ); getIt.registerSingleton(AppSettings()); runApp(const MainApp()); } class MainApp extends StatelessWidget { const MainApp({super.key}); @override Widget build(BuildContext context) { AppTheme appTheme = GetIt.I.get().appTheme; ThemeData themeData; switch (appTheme) { case AppTheme.dark: themeData = fluxDarkTheme; break; case AppTheme.light: themeData = fluxLightTheme; break; default: themeData = ThemeMode.system == ThemeMode.dark ? fluxDarkTheme : fluxLightTheme; break; } return MaterialApp( title: 'FLUX Gestionale', debugShowCheckedModeBanner: false, theme: themeData, // Applica il tema FLUX home: MultiBlocProvider( providers: [ BlocProvider( create: (context) => ThemeBloc(initialAppTheme: appTheme), ), ], child: const HomeScreen(), ), ); } }