import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'di/injection.dart'; import '../core/l10n/l10n.dart'; import '../core/network/i_api_client.dart'; import '../l10n/app_localizations.dart'; import '../features/auth/presentation/bloc/auth_bloc.dart'; import '../features/auth/presentation/bloc/auth_state.dart'; import '../features/chat/presentation/bloc/chat_bloc.dart'; import 'router/app_router.dart'; import '../core/theme/app_theme.dart'; class LinksyApp extends StatelessWidget { final AuthBloc authBloc; const LinksyApp({super.key, required this.authBloc}); @override Widget build(BuildContext context) { return MultiBlocProvider( providers: [ BlocProvider.value(value: authBloc), BlocProvider( create: (_) => ChatBloc(apiClient: sl()), ), ], child: BlocListener( listener: (context, state) { // Handle auth state changes if needed }, child: MaterialApp.router( onGenerateTitle: (context) => AppLocalizations.of(context).appTitle, debugShowCheckedModeBanner: false, theme: AppTheme.light, locale: const Locale('zh'), supportedLocales: AppLocalizations.supportedLocales, localizationsDelegates: AppLocalizations.localizationsDelegates, builder: (context, child) { L10n.setLocale(Localizations.localeOf(context)); return child ?? const SizedBox.shrink(); }, routerConfig: createAppRouter(authBloc), ), ), ); } }