Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 
 
 
 

80 Zeilen
2.5 KiB

  1. import 'package:flutter/material.dart';
  2. import 'package:flutter_localizations/flutter_localizations.dart';
  3. import 'package:hive_flutter/hive_flutter.dart';
  4. import 'package:provider/provider.dart';
  5. import 'package:qadirneyriz/global_state/global_state.dart';
  6. import 'package:qadirneyriz/router/router.dart';
  7. import 'package:flutter_gen/gen_l10n/app_localizations.dart';
  8. import 'package:qadirneyriz/screens/auth/state/state.dart';
  9. import 'package:qadirneyriz/screens/home/state.dart';
  10. import 'package:qadirneyriz/screens/meeting/state.dart';
  11. import 'package:qadirneyriz/setting/setting.dart';
  12. void main() async {
  13. await Hive.initFlutter();
  14. await setting.userLocalDb.openBox();
  15. runApp(
  16. MultiProvider(
  17. providers: [
  18. ChangeNotifierProvider(create: (_) => GlobalState()),
  19. ChangeNotifierProvider(create: (_) => AuthState()),
  20. ChangeNotifierProvider(create: (_) => HomeState()),
  21. ChangeNotifierProvider(create: (_) => MeetingsState()),
  22. ],
  23. child: const MyApp(),
  24. ),
  25. );
  26. }
  27. class MyApp extends StatefulWidget {
  28. const MyApp({super.key});
  29. @override
  30. State<MyApp> createState() => _MyAppState();
  31. }
  32. class _MyAppState extends State<MyApp> {
  33. late AuthState state ;
  34. String language = setting.userLocalDb.getUser().language;
  35. @override
  36. void initState() {
  37. Future.delayed(Duration.zero, () async {
  38. state = Provider.of(context, listen: false);
  39. setState(() {
  40. language = state.language;
  41. });
  42. });
  43. super.initState();
  44. }
  45. // This widget is the root of your application.
  46. @override
  47. Widget build(BuildContext context) {
  48. return Consumer<AuthState>(
  49. builder: (context, value, child) {
  50. return MaterialApp.router(
  51. theme: ThemeData(
  52. useMaterial3: true,
  53. fontFamily: 'Font',
  54. scaffoldBackgroundColor: Colors.white),
  55. debugShowCheckedModeBanner: false,
  56. routerDelegate: router.routerDelegate,
  57. routeInformationParser: router.routeInformationParser,
  58. routeInformationProvider: router.routeInformationProvider,
  59. localizationsDelegates: const [
  60. AppLocalizations.delegate, // Add this line
  61. GlobalMaterialLocalizations.delegate,
  62. GlobalWidgetsLocalizations.delegate,
  63. GlobalCupertinoLocalizations.delegate,
  64. ],
  65. locale: Locale(value.language),
  66. supportedLocales: const [
  67. Locale('fa'), // Persian
  68. Locale('en'), // English
  69. ],
  70. );
  71. },
  72. );
  73. }
  74. }