You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
159 lines
6.6 KiB
Dart
159 lines
6.6 KiB
Dart
import 'package:car_provider_app/config/provider_dependencies.dart';
|
|
import 'package:mc_common_app/repositories/items_repo.dart';
|
|
import 'package:mc_common_app/repositories/schedule_repo.dart';
|
|
import 'package:car_provider_app/view_models/dashboard_view_model.dart';
|
|
import 'package:car_provider_app/view_models/items_view_model.dart';
|
|
import 'package:car_provider_app/view_models/schedule_view_model.dart';
|
|
import 'package:mc_common_app/view_models/service_view_model.dart';
|
|
import 'package:easy_localization/easy_localization.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:mc_common_app/classes/app_state.dart';
|
|
import 'package:mc_common_app/config/dependencies.dart';
|
|
import 'package:mc_common_app/config/routes.dart';
|
|
import 'package:mc_common_app/models/general_models/post_params_model.dart';
|
|
import 'package:mc_common_app/repositories/ads_repo.dart';
|
|
import 'package:mc_common_app/repositories/appointment_repo.dart';
|
|
import 'package:mc_common_app/repositories/branch_repo.dart';
|
|
import 'package:mc_common_app/repositories/chat_repo.dart';
|
|
import 'package:mc_common_app/repositories/common_repo.dart';
|
|
import 'package:mc_common_app/repositories/payments_repo.dart';
|
|
import 'package:mc_common_app/repositories/request_repo.dart';
|
|
import 'package:mc_common_app/repositories/subscription_repo.dart';
|
|
import 'package:mc_common_app/repositories/user_repo.dart';
|
|
import 'package:mc_common_app/services/common_services.dart';
|
|
import 'package:mc_common_app/services/payments_service.dart';
|
|
import 'package:mc_common_app/theme/app_theme.dart';
|
|
import 'package:mc_common_app/utils/enums.dart';
|
|
import 'package:mc_common_app/view_models/ad_view_model.dart';
|
|
import 'package:mc_common_app/view_models/appointments_view_model.dart';
|
|
import 'package:mc_common_app/view_models/base_view_model.dart';
|
|
import 'package:mc_common_app/view_models/chat_view_model.dart';
|
|
import 'package:mc_common_app/view_models/payment_view_model.dart';
|
|
import 'package:mc_common_app/view_models/requests_view_model.dart';
|
|
import 'package:mc_common_app/view_models/subscriptions_view_model.dart';
|
|
import 'package:mc_common_app/view_models/user_view_model.dart';
|
|
import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
|
|
import 'package:provider/provider.dart';
|
|
import 'package:provider/single_child_widget.dart';
|
|
import 'package:sizer/sizer.dart';
|
|
|
|
import 'config/provider_routes.dart';
|
|
|
|
Future<void> main() async {
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
ProviderAppDependencies.addDependencies();
|
|
await EasyLocalization.ensureInitialized();
|
|
ProviderAppRoutes.routes.addAll(AppRoutes.routes);
|
|
runApp(MultiProvider(
|
|
providers: <SingleChildWidget>[
|
|
ChangeNotifierProvider<BaseVM>(
|
|
create: (_) => BaseVM(),
|
|
),
|
|
ChangeNotifierProvider<DashboardVM>(
|
|
create: (_) => DashboardVM(
|
|
userRepo: injector.get<UserRepo>(),
|
|
commonServices: injector.get<CommonAppServices>(),
|
|
),
|
|
),
|
|
ChangeNotifierProvider<UserVM>(
|
|
create: (_) => UserVM(userRepo: injector.get<UserRepo>(), commanServices: injector.get<CommonAppServices>()),
|
|
),
|
|
|
|
// ChangeNotifierProvider<BranchVM>(
|
|
// create: (_) => BranchVM(
|
|
// branchRepo: injector.get<BranchRepo>(),
|
|
// commonServices: injector.get<CommonServices>(),
|
|
// commonRepo: injector.get<CommonRepo>(),
|
|
// ),
|
|
// ),
|
|
ChangeNotifierProvider<ServiceVM>(
|
|
create: (_) => ServiceVM(
|
|
branchRepo: injector.get<BranchRepo>(),
|
|
commonServices: injector.get<CommonAppServices>(),
|
|
commonRepo: injector.get<CommonRepo>(),
|
|
),
|
|
),
|
|
ChangeNotifierProvider<SubscriptionsVM>(
|
|
create: (_) => SubscriptionsVM(subscriptionRepo: injector.get<SubscriptionRepo>()),
|
|
),
|
|
ChangeNotifierProvider<ItemsVM>(
|
|
create: (_) => ItemsVM(
|
|
itemsRepo: injector.get<ItemsRepo>(),
|
|
commonServices: injector.get<CommonAppServices>(),
|
|
),
|
|
),
|
|
ChangeNotifierProvider<ScheduleVM>(
|
|
create: (_) => ScheduleVM(
|
|
scheduleRepo: injector.get<ScheduleRepo>(),
|
|
),
|
|
),
|
|
ChangeNotifierProvider<AdVM>(
|
|
create: (_) => AdVM(
|
|
commonServices: injector.get<CommonAppServices>(),
|
|
adsRepo: injector.get<AdsRepo>(),
|
|
commonRepo: injector.get<CommonRepo>(),
|
|
),
|
|
),
|
|
ChangeNotifierProvider<RequestsVM>(
|
|
create: (_) => RequestsVM(
|
|
commonServices: injector.get<CommonAppServices>(),
|
|
commonRepo: injector.get<CommonRepo>(),
|
|
requestRepo: injector.get<RequestRepo>(),
|
|
),
|
|
),
|
|
ChangeNotifierProvider<AppointmentsVM>(
|
|
create: (_) => AppointmentsVM(
|
|
appointmentRepo: injector.get<AppointmentRepo>(),
|
|
commonServices: injector.get<CommonAppServices>(),
|
|
commonRepo: injector.get<CommonRepo>(),
|
|
branchRepo: injector.get<BranchRepo>(),
|
|
),
|
|
),
|
|
ChangeNotifierProvider<ChatVM>(
|
|
create: (_) => ChatVM(
|
|
chatRepo: injector.get<ChatRepo>(),
|
|
requestRepo: injector.get<RequestRepo>(),
|
|
),
|
|
),
|
|
ChangeNotifierProvider<PaymentVM>(
|
|
create: (_) => PaymentVM(paymentService: injector.get<PaymentService>(), paymentRepo: injector.get<PaymentsRepo>()),
|
|
),
|
|
],
|
|
child: const MyApp(),
|
|
).setupLocale());
|
|
}
|
|
|
|
// todo terminal command to genertate translation files
|
|
// flutter pub run easy_localization:generate --source-dir ./assets/langs
|
|
// todo terminal command to genertate translation keys
|
|
// flutter pub run easy_localization:generate --source-dir ./assets/langs -f keys -o locale_keys.g.dart
|
|
// command to generate languages data from json
|
|
|
|
class MyApp extends StatelessWidget {
|
|
const MyApp({Key? key}) : super(key: key);
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Sizer(
|
|
builder: (context, orientation, deviceType) {
|
|
injector.get<AppState>().setAppType(AppType.provider);
|
|
AppState().setPostParamsModel(
|
|
PostParamsModel(
|
|
languageID: EasyLocalization.of(context)?.locale.languageCode == "ar" ? 1 : 2,
|
|
),
|
|
);
|
|
ThemeData data = AppTheme.getTheme(isArabic: EasyLocalization.of(context)?.locale.languageCode == "ar");
|
|
return MaterialApp(
|
|
theme: AppTheme.getTheme(isArabic: EasyLocalization.of(context)?.locale.languageCode == "ar"),
|
|
debugShowCheckedModeBanner: false,
|
|
localizationsDelegates: context.localizationDelegates,
|
|
supportedLocales: context.supportedLocales,
|
|
locale: context.locale,
|
|
initialRoute: AppRoutes.initialRoute,
|
|
routes: ProviderAppRoutes.routes,
|
|
);
|
|
},
|
|
);
|
|
}
|
|
}
|