import 'package:barcode_scan2/barcode_scan2.dart'; import 'package:diplomaticquarterapp/config/config.dart'; import 'package:diplomaticquarterapp/core/model/pharmacies/PharmacyProduct.dart'; import 'package:diplomaticquarterapp/core/service/client/base_app_client.dart'; import 'package:diplomaticquarterapp/core/service/parmacyModule/parmacy_module_service.dart'; import 'package:diplomaticquarterapp/core/viewModels/PharmacyPagesViewModel.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/pages/pharmacies/screens/cart-page/cart-order-page.dart'; import 'package:diplomaticquarterapp/pages/pharmacies/screens/pharmacy_module_page.dart'; import 'package:diplomaticquarterapp/pages/pharmacies/screens/product-details/product-detail.dart'; import 'package:diplomaticquarterapp/pages/pharmacy/profile/profile.dart'; import 'package:diplomaticquarterapp/pages/pharmacy_categorise.dart'; import 'package:diplomaticquarterapp/pages/search_products_page.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/pharmacy/bottom_nav_pharmacy_bar.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../../locator.dart'; class LandingPagePharmacy extends StatefulWidget { final int currentTab; const LandingPagePharmacy({Key key, this.currentTab = 0}) : super(key: key); @override _LandingPagePharmacyState createState() => _LandingPagePharmacyState(); } class _LandingPagePharmacyState extends State { ProjectViewModel projectProvider; int currentTab = 0; PageController pageController; void initState() { super.initState(); locator().manufacturerList = []; locator().bestSellerProducts = []; locator().lastVisitedProducts = []; pageController = PageController(keepPage: true, initialPage: widget.currentTab); setState(() { currentTab = widget.currentTab; }); } changeCurrentTab(int tab) { if (pageController.hasClients) { setState(() { currentTab = tab; pageController.jumpToPage(tab); }); } } @override Widget build(BuildContext context) { return WillPopScope( onWillPop: () async { return false; }, child: AppScaffold( isBottomBar: true, extendBody: false, isShowDecPage: false, isMainPharmacyPages: true, currentTab: currentTab, changeCurrentTab: changeCurrentTab, body: PageView( physics: NeverScrollableScrollPhysics(), controller: pageController, children: [ PharmacyPage(), PharmacyCategorisePage(), PharmacyProfilePage(moveToOrder: false, changeTab: changeCurrentTab), CartOrderPage(changeTab: changeCurrentTab), ], ), ), ); } void _scanQrAndGetProduct() async { try { ScanResult result = await BarcodeScanner.scan(); try { String barcode = result?.rawContent; GifLoaderDialogUtils.showMyDialog(context); await BaseAppClient() .getPharmacy("$GET_PHARMACY_PRODUCTs_BY_SKU$barcode", onSuccess: (dynamic response, int statusCode) { print(response); var product = PharmacyProduct.fromJson(response["products"][0]); GifLoaderDialogUtils.hideDialog(context); Navigator.push(context, FadePage(page: ProductDetailPage(product))); }, onFailure: (String error, int statusCode) { GifLoaderDialogUtils.hideDialog(context); AppToast.showErrorToast(message: "Product not found"); }); } catch (apiEx) { AppToast.showErrorToast( message: "Something went wrong, please try again"); } } catch (barcodeEx) {} } getText(currentTab) { switch (currentTab) { case 2: return 'Wishlist'; case 3: return 'My Account'; case 4: return 'Shopping Cart'; } } }