// lib/main.dart import 'package:flutter/material.dart'; import 'presentation/screens/ai_enhancement/ai_enhancement_screen.dart'; import 'presentation/screens/export/export_screen.dart'; import 'presentation/screens/home/home_screen.dart'; import 'presentation/screens/home/login_screen.dart'; import 'presentation/screens/image_preview/image_preview_screen.dart'; import 'presentation/screens/media_picker/media_picker_screen.dart'; import 'presentation/screens/post_preview/post_preview_screen.dart'; import 'presentation/screens/post_refinement/post_refinement_screen.dart'; import 'presentation/screens/profile_setup/profile_setup_screen.dart'; import 'presentation/screens/text_generation/text_generation_screen.dart'; import 'repositories/ai_repository.dart'; import 'routes/app_routes.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); static const bool _devSkipLogin = true; @override Widget build(BuildContext context) { // ... (votre code de thème inchangé) const Color seedColor = Colors.blue; return MaterialApp( title: 'Social Content Creator', theme: ThemeData( colorScheme: ColorScheme.fromSeed( seedColor: seedColor, brightness: Brightness.light, ), useMaterial3: true, ), darkTheme: ThemeData( colorScheme: ColorScheme.fromSeed( seedColor: seedColor, brightness: Brightness.dark, ), useMaterial3: true, ), themeMode: ThemeMode.system, debugShowCheckedModeBanner: false, initialRoute: _devSkipLogin ? AppRoutes.home : AppRoutes.login, onGenerateRoute: (settings) { switch (settings.name) { // --- Routes simples inchangées --- case '/': case AppRoutes.login: return MaterialPageRoute(builder: (_) => const LoginScreen()); case AppRoutes.home: return MaterialPageRoute(builder: (_) => const HomeScreen()); case AppRoutes.profileSetup: return MaterialPageRoute(builder: (_) => const ProfileSetupScreen()); case AppRoutes.mediaPicker: return MaterialPageRoute(builder: (_) => const MediaPickerScreen()); case AppRoutes.export: return MaterialPageRoute(builder: (_) => const ExportScreen()); // --- ROUTE AiEnhancement CORRIGÉE --- case AppRoutes.aiEnhancement: if (settings.arguments is AiEnhancementScreenArguments) { final args = settings.arguments! as AiEnhancementScreenArguments; return MaterialPageRoute( builder: (_) => AiEnhancementScreen(arguments: args), ); } return _errorRoute('Arguments (AiEnhancementScreenArguments) invalides pour AiEnhancementScreen.'); // --- Routes avec arguments (inchangées) --- case AppRoutes.imagePreview: // ... (votre code inchangé) if (settings.arguments is String) { final imageBase64 = settings.arguments! as String; return MaterialPageRoute( builder: (_) => ImagePreviewScreen(imageBase64: imageBase64), ); } return _errorRoute('Argument (String) invalide pour ImagePreviewScreen'); case AppRoutes.textGeneration: // ... (votre code inchangé) final args = settings.arguments; if (args is Map) { final imageBase64 = args['imageBase64'] as String?; final aiRepository = args['aiRepository'] as AiRepository?; if (imageBase64 != null && aiRepository != null) { return MaterialPageRoute( builder: (_) => TextGenerationScreen( arguments: TextGenerationScreenArguments( imageBase64: imageBase64, aiRepository: aiRepository, ), ), ); } } return _errorRoute('Arguments invalides pour TextGenerationScreen.'); case AppRoutes.postRefinement: // ... (votre code inchangé) if (settings.arguments is PostRefinementScreenArguments) { final args = settings.arguments! as PostRefinementScreenArguments; return MaterialPageRoute( builder: (_) => PostRefinementScreen(arguments: args), ); } return _errorRoute('Arguments (PostRefinementScreenArguments) invalides pour PostRefinementScreen.'); case AppRoutes.postPreview: // ... (votre code inchangé) if (settings.arguments is PostPreviewArguments) { final args = settings.arguments! as PostPreviewArguments; return MaterialPageRoute( builder: (_) => PostPreviewScreen(arguments: args), ); } return _errorRoute('Arguments (PostPreviewArguments) invalides pour PostPreviewScreen.'); default: return _errorRoute('Route non trouvée: ${settings.name}'); } }, ); } // ... (votre méthode _errorRoute inchangée) MaterialPageRoute _errorRoute(String message) => MaterialPageRoute( builder: (_) => Scaffold( appBar: AppBar(title: const Text('Erreur de Navigation')), body: Center( child: Padding( padding: const EdgeInsets.all(16), child: Text(message, textAlign: TextAlign.center), )), ), ); }