diff --git a/lib/widgets/desktop/desktop_checkout.dart b/lib/widgets/desktop/desktop_checkout.dart index a171431..cd57462 100644 --- a/lib/widgets/desktop/desktop_checkout.dart +++ b/lib/widgets/desktop/desktop_checkout.dart @@ -47,17 +47,17 @@ class DesktopCheckout extends StatefulWidget { } class DesktopCheckoutState extends State with SingleTickerProviderStateMixin, AutomaticKeepAliveClientMixin { - CartInfo cartInfo; - Address shipAddress; - bool canSubmit; - List errorMessages; - List bookingTimeList; - List bookingDateTimeList; - List paymentPlatforms; - TextValue durationInTraffic; - int selectedCoupon; + CartInfo? cartInfo; + Address? shipAddress; + bool canSubmit = false; + List errorMessages = []; + List bookingTimeList = []; + List bookingDateTimeList = []; + List paymentPlatforms = []; + TextValue? durationInTraffic; + int? selectedCoupon; double couponDiscountAmount = 0; - List coupons; + List? coupons; int peopleCount = 2; @@ -65,25 +65,25 @@ class DesktopCheckoutState extends State with SingleTickerProvi String orderRemark = ''; int deliveryMethodIndex = 0; - String deliveryMethod; + String? deliveryMethod; List shippingRates = []; - ShippingRate selectedShippingRate; + ShippingRate? selectedShippingRate; List shippingMethodLabels = []; List shippingMethodIcons = []; GlobalKey _scaffoldKey = GlobalKey(); - int bookingDateIndex; - int bookingTimeIndex; - int paymentPlatformIndex; + int bookingDateIndex = 0; + int bookingTimeIndex = 0; + int paymentPlatformIndex = 0; GlobalKey slidingUpPanelKey = GlobalKey(); - SlidingUpPanel slidingUpPanel; + SlidingUpPanel? slidingUpPanel; PanelController panelController = PanelController(); - Widget panel; + Widget? panel; - double subtotal; + double subtotal = 0; TextEditingController newCouponController = TextEditingController(); @@ -104,7 +104,7 @@ class DesktopCheckoutState extends State with SingleTickerProvi store.dispatch(UpdateContext(context)); - if (cartInfo == null ) { + if (this.cartInfo == null ) { return new Scaffold( body: Center( child: SpinKitWave( @@ -114,8 +114,13 @@ class DesktopCheckoutState extends State with SingleTickerProvi ), ); } + final cartInfo = this.cartInfo!; + final businessInfo = cartInfo.businessInfo; - if (cartInfo.businessInfo.deliveryPickup == false && cartInfo.businessInfo.deliveryCanadaPost == false && cartInfo.businessInfo.deliveryStoreDelivery == false) { + if (businessInfo == null || + businessInfo.deliveryPickup != true && + businessInfo.deliveryCanadaPost != true && + businessInfo.deliveryStoreDelivery != true) { return Scaffold( body: Container( child: Center( @@ -163,7 +168,7 @@ class DesktopCheckoutState extends State with SingleTickerProvi backdropTapClosesPanel: false, isDraggable: false, controller: panelController, - panel: panel, + panel: panel ?? SizedBox.shrink(), body: Row( children: [ Container( @@ -189,7 +194,7 @@ class DesktopCheckoutState extends State with SingleTickerProvi breadCrumbHeight: Constants.BREADCRUMB_HEIGHT, ), body: WillPopScope( - child: slidingUpPanel, + child: slidingUpPanel ?? SizedBox.shrink(), onWillPop: () async { if (panelController != null && panelController.isPanelOpen) { panelController.close(); @@ -223,7 +228,7 @@ class DesktopCheckoutState extends State with SingleTickerProvi color: Colors.white, ), ), - cartInfo.businessInfo.isPublic ? SizedBox.shrink() : Container( + (cartInfo.businessInfo?.isPublic ?? false) ? SizedBox.shrink() : Container( padding: EdgeInsets.only(top: 2.0, bottom: 2.0, left: 5.0, right: 5.0), width: 100.0, color: Colors.red,