Files
fcs/lib/app.dart

185 lines
8.1 KiB
Dart
Raw Permalink 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';
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';
2024-01-25 17:40:35 +06:30
import 'package:flutter/material.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
import 'helpers/theme.dart';
2024-02-02 18:00:51 +06:30
import 'pages/carton/model/carton_selection_model.dart';
2024-02-07 17:26:29 +06:30
import 'pages/carton/model/consignee_selection_model.dart';
2024-02-05 17:49:12 +06:30
import 'pages/carton/model/package_selection_model.dart';
2024-02-07 17:26:29 +06:30
import 'pages/carton/model/sender_selection_model.dart';
import 'pages/carton/model/shipment_selection_model.dart';
2020-10-16 17:57:58 +06:30
import 'pages/delivery/model/delivery_model.dart';
2024-10-04 13:55:59 +06:30
import 'pages/signin/pinlogin_page.dart';
2020-10-16 17:57:58 +06:30
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> {
2025-03-12 17:49:27 +06:30
final MainModel mainModel = MainModel();
final ContactModel contactModel = ContactModel();
final TermModel termModel = TermModel();
final FAQModel faqModel = FAQModel();
final PaymentMethodModel paymentMethodModel = PaymentMethodModel();
final FcsShipmentModel fcsShipmentModel = FcsShipmentModel();
final LanguageModel lanuguageModel = LanguageModel();
final ShipmentRateModel shipmentRateModel = ShipmentRateModel();
final CartonModel boxModel = CartonModel();
final MessageModel messageModel = MessageModel();
final InvoiceModel invoiceModel = InvoiceModel();
final CustomerModel customerModel = CustomerModel();
final DiscountModel discountModel = DiscountModel();
final StaffModel staffModel = StaffModel();
final DeliveryAddressModel deliveryAddressModel = DeliveryAddressModel();
final PackageModel packageModel = PackageModel();
final MarketModel marketModel = MarketModel();
final DeliveryModel deliveryModel = DeliveryModel();
final CartonSizeModel cartonSizeModel = CartonSizeModel();
final ProcessingModel processingModel = ProcessingModel();
final PickupModel pickupModel = PickupModel();
final CartonSelectionModel cartonSelectionModel = CartonSelectionModel();
final PackageSelectionModel packageSelectionModel = PackageSelectionModel();
2024-02-07 17:26:29 +06:30
final ConsigneeSelectionModel consigneeSelectionModel =
2025-03-12 17:49:27 +06:30
ConsigneeSelectionModel();
final SenderSelectionModel senderSelectionModel = SenderSelectionModel();
final ShipmentSelectionModel shipmentSelectionModel =
2025-03-12 17:49:27 +06:30
ShipmentSelectionModel();
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)
..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)
2024-02-02 18:00:51 +06:30
..addModel(pickupModel)
2024-02-05 17:49:12 +06:30
..addModel(cartonSelectionModel)
2024-02-07 17:26:29 +06:30
..addModel(packageSelectionModel)
..addModel(consigneeSelectionModel)
..addModel(senderSelectionModel)
..addModel(shipmentSelectionModel);
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(),
2024-10-04 13:55:59 +06:30
'/pin_login': (_) => PinLoginPage()
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: 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),
2024-02-02 18:00:51 +06:30
ChangeNotifierProvider.value(value: cartonSelectionModel),
2024-02-05 17:49:12 +06:30
ChangeNotifierProvider.value(value: packageSelectionModel),
2024-02-07 17:26:29 +06:30
ChangeNotifierProvider.value(value: consigneeSelectionModel),
ChangeNotifierProvider.value(value: senderSelectionModel),
ChangeNotifierProvider.value(value: shipmentSelectionModel),
2020-09-06 02:36:57 +06:30
],
2020-09-07 00:47:02 +06:30
child: Consumer<LanguageModel>(
builder: (context, value, child) {
2024-01-25 17:40:35 +06:30
return MaterialApp(
2020-09-07 00:47:02 +06:30
debugShowCheckedModeBanner: false,
2024-01-25 17:40:35 +06:30
theme: ThemeData(
// useMaterial3: false,
textSelectionTheme:
2025-02-17 20:13:30 +06:30
const TextSelectionThemeData(cursorColor: primaryColor),
2024-01-25 17:40:35 +06:30
dividerTheme: DividerThemeData(color: Colors.grey.shade200),
colorScheme: ColorScheme.light(primary: Colors.white),
dialogTheme: DialogTheme(
backgroundColor: Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10))),
),
2024-01-23 15:15:07 +06:30
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
}
}