You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

95 regels
3.2 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/config/config.dart';
  6. import 'package:qadirneyriz/global/global_state/global_state.dart';
  7. import 'package:qadirneyriz/router/router.dart';
  8. import 'package:flutter_gen/gen_l10n/app_localizations.dart';
  9. import 'package:qadirneyriz/screens/auth/state/state.dart';
  10. import 'package:qadirneyriz/screens/home/state.dart';
  11. import 'package:qadirneyriz/screens/meeting/state.dart';
  12. import 'package:qadirneyriz/screens/private_meeting/state.dart';
  13. import 'package:qadirneyriz/screens/report/state.dart';
  14. import 'package:qadirneyriz/setting/setting.dart';
  15. void main() async {
  16. await Hive.initFlutter();
  17. await setting.userLocalDb.openBox();
  18. runApp(
  19. MultiProvider(
  20. providers: [
  21. ChangeNotifierProvider(create: (_) => GlobalState()),
  22. ChangeNotifierProvider(create: (_) => AuthState()),
  23. ChangeNotifierProvider(create: (_) => HomeState()),
  24. ChangeNotifierProvider(create: (_) => MeetingsState()),
  25. ChangeNotifierProvider(create: (_) => PrivateMeetingsState()),
  26. ChangeNotifierProvider(create: (_) => ReportState()),
  27. ],
  28. child: const MyApp(),
  29. ),
  30. );
  31. }
  32. class MyApp extends StatefulWidget {
  33. const MyApp({super.key});
  34. @override
  35. State<MyApp> createState() => _MyAppState();
  36. }
  37. class _MyAppState extends State<MyApp> {
  38. late AuthState state;
  39. String language = setting.userLocalDb.getUser().language;
  40. @override
  41. void initState() {
  42. Future.delayed(Duration.zero, () async {
  43. state = Provider.of(context, listen: false);
  44. setState(() {
  45. language = state.language;
  46. });
  47. });
  48. super.initState();
  49. }
  50. // This widget is the root of your application.
  51. @override
  52. Widget build(BuildContext context) {
  53. return Consumer<AuthState>(
  54. builder: (context, value, child) {
  55. return MaterialApp.router(
  56. theme: ThemeData(
  57. colorScheme: ColorScheme.light(
  58. // تغییر رنگ اصلی تایم پیکر
  59. primary: config.ui.mainGreen,
  60. // تغییر رنگ متن
  61. ),
  62. buttonTheme: ButtonThemeData(
  63. colorScheme: ColorScheme.light(
  64. primary: Colors.green, // رنگ دکمه‌ها
  65. ),
  66. ),
  67. useMaterial3: true,
  68. fontFamily: 'Font',
  69. scaffoldBackgroundColor: Colors.white),
  70. debugShowCheckedModeBanner: false,
  71. routerDelegate: router.routerDelegate,
  72. routeInformationParser: router.routeInformationParser,
  73. routeInformationProvider: router.routeInformationProvider,
  74. localizationsDelegates: const [
  75. AppLocalizations.delegate, // Add this line
  76. GlobalMaterialLocalizations.delegate,
  77. GlobalWidgetsLocalizations.delegate,
  78. GlobalCupertinoLocalizations.delegate,
  79. ],
  80. locale: Locale(value.language),
  81. supportedLocales: const [
  82. Locale('fa'), // Persian
  83. Locale('en'), // English
  84. ],
  85. );
  86. },
  87. );
  88. }
  89. }