// main.dart import 'dart:ui'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:tm_app/core/config/dependencies.dart'; import 'package:tm_app/core/theme/theme_provider.dart'; import 'core/routes/app_routes.dart'; import 'core/theme/colors.dart'; import 'core/utils/logger.dart'; void main() { // Initialize the logger appLogger.init(); // Log app start appLogger.info('🚀 Starting TM App...'); // appLogger.logNavigation('Home', 'Login'); runApp(MultiProvider(providers: [...providersRemote], child: const MyApp())); } class MyApp extends StatefulWidget { const MyApp({super.key}); @override State createState() => _MyAppState(); } class _MyAppState extends State { @override void didChangeDependencies() { super.didChangeDependencies(); // Set the context for ThemeProvider to enable forced rebuilds ThemeProvider.setContext(context); } @override Widget build(BuildContext context) { // Listen to theme changes final themeProvider = context.watch(); return MaterialApp.router( title: 'Flutter Demo', scrollBehavior: MaterialScrollBehavior().copyWith( dragDevices: { PointerDeviceKind.mouse, PointerDeviceKind.touch, PointerDeviceKind.stylus, PointerDeviceKind.unknown, }, ), theme: ThemeData( brightness: themeProvider.isDarkMode ? Brightness.dark : Brightness.light, primaryColor: AppColors.primaryColor, scaffoldBackgroundColor: AppColors.backgroundColor, colorScheme: ColorScheme.fromSeed( seedColor: AppColors.primaryColor, brightness: themeProvider.isDarkMode ? Brightness.dark : Brightness.light, ), ), routerConfig: appRouter, ); } }