Files
fcs/lib/app.dart

148 lines
6.3 KiB
Dart
Raw Normal View History

2020-10-07 02:33:06 +06:30
import 'package:fcs/localization/app_translations_delegate.dart';
import 'package:fcs/localization/transalation.dart';
import 'package:fcs/pages/box/model/box_model.dart';
import 'package:fcs/pages/chat/model/message_model.dart';
import 'package:fcs/pages/contact/model/contact_model.dart';
import 'package:fcs/pages/customer/model/customer_model.dart';
import 'package:fcs/pages/discount/model/discount_model.dart';
import 'package:fcs/pages/faq/model/faq_model.dart';
import 'package:fcs/pages/fcs_shipment/model/fcs_shipment_model.dart';
import 'package:fcs/pages/main/home_page.dart';
import 'package:fcs/pages/main/initial_language_selection.dart';
import 'package:fcs/pages/invoice/model/invoice_model.dart';
import 'package:fcs/pages/market/model/market_model.dart';
import 'package:fcs/pages/main/model/language_model.dart';
import 'package:fcs/pages/main/model/main_model.dart';
import 'package:fcs/pages/package/model/package_model.dart';
import 'package:fcs/pages/payment_methods/model/payment_method_model.dart';
import 'package:fcs/pages/rates/model/shipment_rate_model.dart';
import 'package:fcs/pages/shipment/model/pickup_model.dart';
import 'package:fcs/pages/shipment_address/model/shipment_address_model.dart';
import 'package:fcs/pages/main/splash_page.dart';
import 'package:fcs/pages/staff/model/staff_model.dart';
import 'package:fcs/pages/term/model/term_model.dart';
import 'package:fcs/pages/main/welcome_page.dart';
2020-09-07 00:47:02 +06:30
import 'package:flutter/cupertino.dart';
2020-08-30 21:26:37 +06:30
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:provider/provider.dart';
2020-05-29 07:45:27 +06:30
class App extends StatefulWidget {
@override
_AppState createState() => _AppState();
}
class _AppState extends State<App> {
2020-10-07 02:33:06 +06:30
final MainModel mainModel = new MainModel();
2020-09-12 03:34:52 +06:30
final ContactModel contactModel = new ContactModel();
final TermModel termModel = new TermModel();
2020-09-11 16:14:36 +06:30
final FAQModel faqModel = new FAQModel();
2020-09-18 04:04:21 +06:30
final PaymentMethodModel paymentMethodModel = new PaymentMethodModel();
2020-10-07 02:33:06 +06:30
final FcsShipmentModel fcsShipmentModel = new FcsShipmentModel();
2020-05-29 07:45:27 +06:30
final LanguageModel lanuguageModel = new LanguageModel();
2020-05-29 15:54:26 +06:30
final PickUpModel pickUpModel = new PickUpModel();
final ShipmentRateModel shipmentRateModel = new ShipmentRateModel();
2020-06-24 16:06:40 +06:30
final BoxModel boxModel = new BoxModel();
final MessageModel messageModel = new MessageModel();
2020-06-02 14:56:51 +06:30
final InvoiceModel invoiceModel = new InvoiceModel();
2020-06-02 14:52:31 +06:30
final CustomerModel customerModel = new CustomerModel();
2020-06-26 16:04:40 +06:30
final DiscountModel discountModel = new DiscountModel();
2020-09-13 21:49:39 +06:30
final StaffModel staffModel = new StaffModel();
2020-10-07 02:33:06 +06:30
final ShipmentAddressModel shipmentAddressModel = new ShipmentAddressModel();
2020-09-15 07:13:41 +06:30
final PackageModel packageModel = new PackageModel();
2020-09-16 02:29:50 +06:30
final MarketModel marketModel = new MarketModel();
2020-05-29 07:45:27 +06:30
AppTranslationsDelegate _newLocaleDelegate;
@override
void initState() {
super.initState();
2020-10-07 02:33:06 +06:30
mainModel
2020-09-15 07:13:41 +06:30
..addModel(customerModel)
..addModel(staffModel)
2020-10-07 02:33:06 +06:30
..addModel(shipmentAddressModel)
2020-09-16 02:29:50 +06:30
..addModel(packageModel)
2020-09-20 05:34:49 +06:30
..addModel(messageModel)
2020-10-07 02:33:06 +06:30
..addModel(fcsShipmentModel)
..addModel(discountModel)
..addModel(shipmentRateModel)
..addModel(boxModel)
..addModel(pickUpModel)
..addModel(invoiceModel)
2020-09-16 02:29:50 +06:30
..addModel(marketModel);
2020-09-13 21:49:39 +06:30
2020-05-29 07:45:27 +06:30
_newLocaleDelegate = AppTranslationsDelegate(newLocale: null);
Translation().onLocaleChanged = onLocaleChange;
}
void onLocaleChange(Locale locale) {
setState(() {
_newLocaleDelegate = AppTranslationsDelegate(newLocale: locale);
});
}
Map<String, WidgetBuilder> route(BuildContext context) {
final routes = <String, WidgetBuilder>{
'/': (_) => SplashScreen(),
2020-08-30 21:26:37 +06:30
'/welcome': (_) => WelcomePage(),
'/home': (_) => HomePage(),
2020-09-12 03:34:52 +06:30
'/language_selection': (context) => InitialLanguageSelectionPage(),
2020-05-29 07:45:27 +06:30
};
return routes;
}
@override
Widget build(BuildContext context) {
return MultiProvider(
2020-09-06 02:36:57 +06:30
providers: [
ChangeNotifierProvider.value(value: mainModel),
2020-09-13 21:49:39 +06:30
ChangeNotifierProvider.value(value: staffModel),
2020-09-06 02:36:57 +06:30
ChangeNotifierProvider.value(value: lanuguageModel),
ChangeNotifierProvider.value(value: pickUpModel),
ChangeNotifierProvider.value(value: shipmentRateModel),
2020-10-07 02:33:06 +06:30
ChangeNotifierProvider.value(value: shipmentAddressModel),
2020-09-06 02:36:57 +06:30
ChangeNotifierProvider.value(value: packageModel),
ChangeNotifierProvider.value(value: boxModel),
ChangeNotifierProvider.value(value: messageModel),
ChangeNotifierProvider.value(value: invoiceModel),
ChangeNotifierProvider.value(value: customerModel),
ChangeNotifierProvider.value(value: discountModel),
2020-09-07 16:05:28 +06:30
ChangeNotifierProvider.value(value: contactModel),
2020-09-12 03:34:52 +06:30
ChangeNotifierProvider.value(value: termModel),
ChangeNotifierProvider.value(value: faqModel),
2020-09-18 04:04:21 +06:30
ChangeNotifierProvider.value(value: paymentMethodModel),
2020-09-16 02:29:50 +06:30
ChangeNotifierProvider.value(value: marketModel),
2020-10-07 02:33:06 +06:30
ChangeNotifierProvider.value(value: fcsShipmentModel),
2020-09-06 02:36:57 +06:30
],
2020-09-07 00:47:02 +06:30
child: Consumer<LanguageModel>(
builder: (context, value, child) {
return CupertinoApp(
debugShowCheckedModeBanner: false,
title: 'FCS',
2020-09-07 16:05:28 +06:30
// theme: CupertinoThemeData(
// textTheme: CupertinoTextThemeData(
// navActionTextStyle: TextStyle(color: Colors.white),
// navTitleTextStyle: TextStyle(
// color: Colors.white,
// fontSize: value.isEng ? 20 : 18,
// fontWeight: FontWeight.w600),
// navLargeTitleTextStyle: TextStyle(
// color: Colors.white,
// fontSize: value.isEng ? 40 : 24,
// fontWeight: FontWeight.w600),
// primaryColor: primaryColor,
// textStyle: TextStyle(color: Colors.white),
// actionTextStyle: TextStyle(color: Colors.white),
// )),
2020-09-07 00:47:02 +06:30
routes: route(context),
localizationsDelegates: [
_newLocaleDelegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
supportedLocales: Translation().supportedLocales());
},
));
2020-05-29 07:45:27 +06:30
}
}