Files
fcs/lib/app.dart

154 lines
6.5 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';
2020-10-18 02:38:46 +06:30
import 'package:fcs/pages/carton/model/carton_model.dart';
import 'package:fcs/pages/carton_size/model/carton_size_model.dart';
2020-10-07 02:33:06 +06:30
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';
2020-10-08 15:54:43 +06:30
import 'package:fcs/pages/delivery_address/model/delivery_address_model.dart';
2020-10-07 02:33:06 +06:30
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';
2021-10-09 17:08:28 +06:30
import 'package:fcs/pages/pickup/model/pickup_model.dart';
import 'package:fcs/pages/processing/model/processing_model.dart';
2020-10-07 02:33:06 +06:30
import 'package:fcs/pages/rates/model/shipment_rate_model.dart';
2020-10-07 14:42:07 +06:30
import 'package:fcs/pages/shipment/model/shipment_model.dart';
2020-10-07 02:33:06 +06:30
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_localizations/flutter_localizations.dart';
import 'package:provider/provider.dart';
2020-05-29 07:45:27 +06:30
2020-10-16 17:57:58 +06:30
import 'pages/delivery/model/delivery_model.dart';
2020-05-29 07:45:27 +06:30
class App extends StatefulWidget {
2024-01-23 15:15:07 +06:30
final String title;
const App({super.key, required this.title});
2024-01-24 16:54:08 +06:30
@override
2020-05-29 07:45:27 +06:30
_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-10-07 14:42:07 +06:30
final ShipmentModel shipmentModel = new ShipmentModel();
2020-05-29 15:54:26 +06:30
final ShipmentRateModel shipmentRateModel = new ShipmentRateModel();
2020-10-18 02:38:46 +06:30
final CartonModel boxModel = new CartonModel();
2020-06-24 16:06:40 +06:30
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-08 15:54:43 +06:30
final DeliveryAddressModel deliveryAddressModel = new DeliveryAddressModel();
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-10-16 17:57:58 +06:30
final DeliveryModel deliveryModel = new DeliveryModel();
final CartonSizeModel cartonSizeModel = new CartonSizeModel();
final ProcessingModel processingModel = new ProcessingModel();
2021-10-09 17:08:28 +06:30
final PickupModel pickupModel = new PickupModel();
2020-05-29 07:45:27 +06:30
2021-08-25 19:00:04 +06:30
late AppTranslationsDelegate _newLocaleDelegate;
2020-05-29 07:45:27 +06:30
@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-08 15:54:43 +06:30
..addModel(deliveryAddressModel)
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)
2020-10-07 14:42:07 +06:30
..addModel(shipmentModel)
2020-10-07 02:33:06 +06:30
..addModel(invoiceModel)
2020-10-16 17:57:58 +06:30
..addModel(marketModel)
..addModel(deliveryModel)
..addModel(cartonSizeModel)
2021-10-09 17:08:28 +06:30
..addModel(processingModel)
..addModel(pickupModel);
2020-09-13 21:49:39 +06:30
2021-08-25 19:00:04 +06:30
_newLocaleDelegate = AppTranslationsDelegate(
newLocale: Translation().supportedLocales().first);
2020-05-29 07:45:27 +06:30
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),
2020-10-07 14:42:07 +06:30
ChangeNotifierProvider.value(value: shipmentModel),
2020-09-06 02:36:57 +06:30
ChangeNotifierProvider.value(value: shipmentRateModel),
2020-10-08 15:54:43 +06:30
ChangeNotifierProvider.value(value: deliveryAddressModel),
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-10-16 17:57:58 +06:30
ChangeNotifierProvider.value(value: deliveryModel),
ChangeNotifierProvider.value(value: cartonSizeModel),
ChangeNotifierProvider.value(value: processingModel),
2021-10-09 17:08:28 +06:30
ChangeNotifierProvider.value(value: pickupModel),
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,
2024-01-23 15:15:07 +06:30
theme: CupertinoThemeData(),
title: widget.title,
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
}
}