From 7f15522f674b28d96cb5d6cd5a9996bf827921d1 Mon Sep 17 00:00:00 2001 From: Elham Rababah Date: Wed, 2 Sep 2020 16:12:12 +0300 Subject: [PATCH] Improvement on the Ui --- lib/config/localized_values.dart | 39 +++++++------------ lib/pages/dashboard/dashboard_screen.dart | 12 +++--- lib/pages/delivery/information_page.dart | 2 +- lib/uitl/translations_delegate_base.dart | 20 ++++++++++ .../bottom_sheet/action_sheet_button.dart | 24 +++++++----- .../bottom_sheet/custom_bottom_sheet.dart | 2 +- lib/widgets/buttons/secondary_button.dart | 21 +++++++--- .../data_display/dialog/custom_dialog.dart | 15 +++++-- lib/widgets/others/app_scaffold_widget.dart | 17 ++++---- 9 files changed, 90 insertions(+), 62 deletions(-) diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index 81a01c6..d653800 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -58,29 +58,18 @@ const Map> localizedValues = { 'ar': 'رسالة نصية' }, 'packageContent': { - 'en': 'Package Content', - 'ar': 'محتوى الحزمة' - }, - 'payment': { - 'en': 'Payment', - 'ar': 'دفع' - }, - 'delivryTime': { - 'en': 'Delivery Time', - 'ar': 'وقت التوصيل' - }, - 'clientReached': { - 'en': 'Client Reached', - 'ar': 'الوصول الى العميل' - }, - 'addNoteBtn': { - 'en': 'Add Note', - 'ar': 'اضافة ملاحظة' - }, - 'nextDelivery': { - 'en': 'Next Delivery', - 'ar': 'الشحنة التالية' - } - - + 'en': 'Package Content', 'ar': 'محتوى الحزمة'}, + 'payment': {'en': 'Payment', 'ar': 'دفع'}, + 'delivryTime': {'en': 'Delivery Time', 'ar': 'وقت التوصيل'}, + 'clientReached': {'en': 'Client Reached', 'ar': 'الوصول الى العميل'}, + 'addNoteBtn': {'en': 'Add Note', 'ar': 'اضافة ملاحظة'}, + 'nextDelivery': {'en': 'Next Delivery', 'ar': 'الشحنة التالية'}, + 'delivered': {'en': 'Delivered', 'ar': 'وصل'}, + 'deliveredAccepted': {'en': 'Delivered/Accepted', 'ar': 'تم التوصيل/مقبول'}, + 'deliveredRejected': {'en': 'Delivered/Rejected', 'ar': 'تم التوصيل/مرفوض'}, + 'canceled': {'en': 'Canceled', 'ar': 'الغى'}, + 'selectAction': {'en': 'Select Action', 'ar': 'الرجاء الاختيار'}, + 'youHaveSelected': {'en': 'You have selected:', 'ar': 'لقد قمت باختيار:'}, + 'confirm': {'en': 'Confirm', 'ar': 'تأكيد'}, + 'areYouSure': {'en': 'Are you sure?', 'ar': 'هل أنت واثق؟'}, }; diff --git a/lib/pages/dashboard/dashboard_screen.dart b/lib/pages/dashboard/dashboard_screen.dart index 96f0ffb..33781a2 100644 --- a/lib/pages/dashboard/dashboard_screen.dart +++ b/lib/pages/dashboard/dashboard_screen.dart @@ -10,9 +10,9 @@ import 'package:driverapp/widgets/others/network_base_view.dart'; import 'package:driverapp/widgets/others/rounded_container.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:hexcolor/hexcolor.dart'; import '../base/base_view.dart'; -import 'package:driverapp/config/shared_pref_kay.dart'; class DashboardScreen extends StatefulWidget { @override @@ -257,11 +257,11 @@ class _DashboardScreenState extends State { height: MediaQuery.of(context).size.height * 0.18, width: MediaQuery.of(context).size.width * 0.50, decoration: BoxDecoration( - borderRadius: BorderRadius.circular(15.0), - gradient: LinearGradient(colors: [ - Color(0xff48C0BC), - Color(0xff17AFB8) - ])), + borderRadius: BorderRadius.circular(15.0), + gradient: LinearGradient( + colors: [Hexcolor("#45B7AE"), Hexcolor("#119FA9")], + ), + ), child: Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ diff --git a/lib/pages/delivery/information_page.dart b/lib/pages/delivery/information_page.dart index 96fdfe7..b85ad6c 100644 --- a/lib/pages/delivery/information_page.dart +++ b/lib/pages/delivery/information_page.dart @@ -1 +1 @@ -import 'package:driverapp/app-icons/driver_app_icons.dart'; import 'package:driverapp/core/enum/viewstate.dart'; import 'package:driverapp/core/model/orders/pending_orders_res_model.dart'; import 'package:driverapp/core/model/orders/update_order_status_request_model.dart'; import 'package:driverapp/core/viewModels/orders_view_model.dart'; import 'package:driverapp/pages/base/base_view.dart'; import 'package:driverapp/pages/delivery/delivery_confirmed_page.dart'; import 'package:driverapp/uitl/utils.dart'; import 'package:driverapp/widgets/bottom_sheet/action_sheet_button.dart'; import 'package:driverapp/widgets/bottom_sheet/custom_bottom_sheet.dart'; import 'package:driverapp/widgets/buttons/secondary_button.dart'; import 'package:driverapp/widgets/data_display/dialog/custom_dialog.dart'; import 'package:driverapp/widgets/data_display/text.dart'; import 'package:driverapp/widgets/delivery/customer_brief_card.dart'; import 'package:driverapp/widgets/delivery/delivery_action_button.dart'; import 'package:driverapp/widgets/delivery/package_content.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:hexcolor/hexcolor.dart'; import '../../uitl/translations_delegate_base.dart'; import '../../widgets/others/app_scaffold_widget.dart'; class InformationPage extends StatelessWidget { final PendingOrdersRes item; int orderStatus; InformationPage(this.item); @override Widget build(BuildContext context) { return BaseView( builder: (_, model, w) => AppScaffold( isShowAppBar: true, appBarColor: Theme.of(context).primaryColor, arrowColor: Colors.white, titleColor: Colors.white, appBarTitle: TranslationBase.of(context).deliveryInfo, body: Container( color: Theme.of(context).primaryColor, child: Container( color: Theme.of(context).primaryColor, child: ListView( children: [ Column( children: [ Stack( children: [ Container( width: MediaQuery.of(context).size.width, height: MediaQuery.of(context).size.width, ), Container( width: MediaQuery.of(context).size.width * 1, height: MediaQuery.of(context).size.width * 1.5, margin: EdgeInsets.only( top: MediaQuery.of(context).size.width * 0.23, ), decoration: BoxDecoration( color: Theme.of(context).scaffoldBackgroundColor, borderRadius: BorderRadius.only( topLeft: Radius.circular(45), topRight: Radius.circular(45)), ), child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ SizedBox( height: MediaQuery.of(context).size.width * 0.53, ), Row( mainAxisAlignment: MainAxisAlignment.center, children: [ DeliveryInfoButton( btnColor: Color(0xffED1C24), btnIcon: Icon( Icons.near_me, size: 30, color: Colors.white, ), btnName: TranslationBase.of(context).location, btnFunction: () {}, ), DeliveryInfoButton( btnColor: Color(0xFF61B260), btnIcon: Icon( Icons.whatshot, size: 30, color: Colors.white, ), btnName: 'Whatsapp', btnFunction: () {}, ), DeliveryInfoButton( btnColor: Color(0xFFFCB657), btnIcon: Icon( Icons.mail_outline, size: 30, color: Colors.white, ), btnName: TranslationBase.of(context).sms, btnFunction: () {}, ), DeliveryInfoButton( btnColor: Theme.of(context).primaryColor, btnIcon: Icon( Icons.phone, size: 30, color: Colors.white, ), btnName: TranslationBase.of(context).call, btnFunction: () {}, ), ], ), SizedBox( height: MediaQuery.of(context).size.width * 0.1, ), Container( margin: EdgeInsets.only( left: MediaQuery.of(context).size.width * 0.05, right: MediaQuery.of(context).size.width * 0.05, ), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( padding: const EdgeInsets.only(left: 8), child: Text( TranslationBase.of(context) .packageContent, style: TextStyle( fontWeight: FontWeight.w900, fontSize: 20), ), ), SizedBox( height: MediaQuery.of(context).size.width * 0.05, ), Padding( padding: const EdgeInsets.only(left: 10), child: Column( children: List.generate( item.itemsQuantitiesList.length, (index) { return packageContent( packageName: item .itemsQuantitiesList[index] .itemName .toString(), packageCount: item .itemsQuantitiesList[index] .quantity .toString(), ); }), ), ), SizedBox( height: MediaQuery.of(context).size.width * 0.01, ), ], ), ), SizedBox( height: MediaQuery.of(context).size.width * 0.1, ), Container( margin: EdgeInsets.all(10), child: SecondaryButton( label: TranslationBase.of(context).clientReached, onTap: () { model.showBottomSheet(); }, ), ), ], ), ), CustomerBriefCard( itemId: item.patientID, customerFirstName: item.firstName, customerLastName: item.lastName, mobileNo: item.mobileNumber, totalPayment: item.amount, deliveryTime: item.orderCreatedOn), ], ), ], ), ], ), ), ), bottomSheet: !model.isBottomSheetAppear ? Container( width: 0, height: 0, ) : CustomBottomSheet(children: [ SizedBox( height: 10, ), Center( child: Texts( 'Select Action', color: Colors.black, fontSize: 22, ), ), SizedBox( height: 10, ), FractionallySizedBox( widthFactor: 0.9, child: Column( children: [ SizedBox( height: 3, child: Container( color: Hexcolor("#D5D5D5"), ), ), SizedBox( height: 6, ), ActionSheetButton( label: "Delivered", icon: DriverApp.deliverd_icon, onTap: () { selectAction(context, 1, model); }, ), SizedBox( height: 6, ), ActionSheetButton( label: "Not Available", icon: DriverApp.not_available, onTap: () { selectAction(context, 2, model); }, ), SizedBox( height: 6, ), ActionSheetButton( label: "Rejected", icon: DriverApp.rejected_icon, onTap: () { selectAction(context, 3, model); }, ), SizedBox( height: 6, ), ActionSheetButton( label: "Not Reachable", icon: DriverApp.not_reachable_icon, onTap: () { selectAction(context, 4, model); }, ), ], )), ]), ), ); } selectAction(BuildContext context, orderStatus, OrdersViewModel model) { String orderStatusText; this.orderStatus = orderStatus; switch (orderStatus) { case 1: orderStatusText = "Delivered"; break; case 2: orderStatusText = "Not Available"; break; case 3: orderStatusText = "Rejected"; break; case 4: orderStatusText = "Not Reachable"; break; } showDialog( context: context, builder: (BuildContext context) { return CustomDialog( orderStatusText: orderStatusText, callService: () { updateOrderStatus(context, model); }, model: model,); }); } updateOrderStatus(BuildContext context, OrdersViewModel model) async { UpdateOrderStatusRequestModel updateOrderStatusRequestModel = UpdateOrderStatusRequestModel(deliveryOrderID: item.orderID, deliveryOrderStatus: orderStatus, rejectionReason: "NO Reason", cancleReason: ""); await model.updateOrderStatus(updateOrderStatusRequestModel); if (model.state == ViewState.ErrorLocal) { Utils.showErrorToast(model.error); Navigator.of(context).pop(); model.hideBottomSheet(); } else { Navigator.of(context).pop(); model.hideBottomSheet(); Navigator.push( context, MaterialPageRoute( builder: (context) => DeliveryConfirmedPage(item), ), ); } } } \ No newline at end of file +import 'package:driverapp/app-icons/driver_app_icons.dart'; import 'package:driverapp/core/enum/viewstate.dart'; import 'package:driverapp/core/model/orders/pending_orders_res_model.dart'; import 'package:driverapp/core/model/orders/update_order_status_request_model.dart'; import 'package:driverapp/core/viewModels/orders_view_model.dart'; import 'package:driverapp/pages/base/base_view.dart'; import 'package:driverapp/pages/delivery/delivery_confirmed_page.dart'; import 'package:driverapp/uitl/utils.dart'; import 'package:driverapp/widgets/bottom_sheet/action_sheet_button.dart'; import 'package:driverapp/widgets/bottom_sheet/custom_bottom_sheet.dart'; import 'package:driverapp/widgets/buttons/secondary_button.dart'; import 'package:driverapp/widgets/data_display/dialog/custom_dialog.dart'; import 'package:driverapp/widgets/data_display/text.dart'; import 'package:driverapp/widgets/delivery/customer_brief_card.dart'; import 'package:driverapp/widgets/delivery/delivery_action_button.dart'; import 'package:driverapp/widgets/delivery/package_content.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:hexcolor/hexcolor.dart'; import '../../uitl/translations_delegate_base.dart'; import '../../widgets/others/app_scaffold_widget.dart'; class InformationPage extends StatelessWidget { final PendingOrdersRes item; int orderStatus; InformationPage(this.item); @override Widget build(BuildContext context) { return BaseView( builder: (_, model, w) => AppScaffold( isShowAppBar: true, appBarColor: Theme.of(context).primaryColor, arrowColor: Colors.white, titleColor: Colors.white, appBarTitle: TranslationBase.of(context).deliveryInfo, body: Container( color: Theme.of(context).primaryColor, child: Container( color: Theme.of(context).primaryColor, child: ListView( children: [ Column( children: [ Stack( children: [ Container( width: MediaQuery.of(context).size.width, height: MediaQuery.of(context).size.width, ), Container( width: MediaQuery.of(context).size.width * 1, height: MediaQuery.of(context).size.width * 1.5, margin: EdgeInsets.only( top: MediaQuery.of(context).size.width * 0.23, ), decoration: BoxDecoration( color: Theme.of(context).scaffoldBackgroundColor, borderRadius: BorderRadius.only( topLeft: Radius.circular(45), topRight: Radius.circular(45)), ), child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ SizedBox( height: MediaQuery.of(context).size.width * 0.53, ), Row( mainAxisAlignment: MainAxisAlignment.center, children: [ DeliveryInfoButton( btnColor: Color(0xffED1C24), btnIcon: Icon( Icons.near_me, size: 30, color: Colors.white, ), btnName: TranslationBase.of(context).location, btnFunction: () {}, ), DeliveryInfoButton( btnColor: Color(0xFF61B260), btnIcon: Icon( Icons.whatshot, size: 30, color: Colors.white, ), btnName: 'Whatsapp', btnFunction: () {}, ), DeliveryInfoButton( btnColor: Color(0xFFFCB657), btnIcon: Icon( Icons.mail_outline, size: 30, color: Colors.white, ), btnName: TranslationBase.of(context).sms, btnFunction: () {}, ), DeliveryInfoButton( btnColor: Theme.of(context).primaryColor, btnIcon: Icon( Icons.phone, size: 30, color: Colors.white, ), btnName: TranslationBase.of(context).call, btnFunction: () {}, ), ], ), SizedBox( height: MediaQuery.of(context).size.width * 0.1, ), Container( margin: EdgeInsets.only( left: MediaQuery.of(context).size.width * 0.05, right: MediaQuery.of(context).size.width * 0.05, ), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( padding: const EdgeInsets.only(left: 8), child: Text( TranslationBase.of(context) .packageContent, style: TextStyle( fontWeight: FontWeight.w900, fontSize: 20), ), ), SizedBox( height: MediaQuery.of(context).size.width * 0.05, ), Padding( padding: const EdgeInsets.only(left: 10), child: Column( children: List.generate( item.itemsQuantitiesList.length, (index) { return packageContent( packageName: item .itemsQuantitiesList[index] .itemName .toString(), packageCount: item .itemsQuantitiesList[index] .quantity .toString(), ); }), ), ), SizedBox( height: MediaQuery.of(context).size.width * 0.01, ), ], ), ), SizedBox( height: MediaQuery.of(context).size.width * 0.1, ), Container( margin: EdgeInsets.all(10), child: SecondaryButton( label: TranslationBase.of(context).clientReached, onTap: () { model.showBottomSheet(); }, ), ), ], ), ), CustomerBriefCard( itemId: item.patientID, customerFirstName: item.firstName, customerLastName: item.lastName, mobileNo: item.mobileNumber, totalPayment: item.amount, deliveryTime: item.orderCreatedOn), ], ), ], ), ], ), ), ), bottomSheet: !model.isBottomSheetAppear ? Container( width: 0, height: 0, ) : CustomBottomSheet(children: [ SizedBox( height: 10, ), Center( child: Texts( TranslationBase.of(context).selectAction, color: Colors.black, fontSize: 22, ), ), SizedBox( height: 10, ), FractionallySizedBox( widthFactor: 0.9, child: Column( children: [ SizedBox( height: 3, child: Container( color: Hexcolor("#D5D5D5"), ), ), SizedBox( height: 15, ), ActionSheetButton( label: TranslationBase .of(context) .delivered, icon: DriverApp.deliverd_icon, onTap: () { selectAction(context, 3, model); }, ), SizedBox( height: 15 ), ActionSheetButton( label: TranslationBase .of(context) .deliveredAccepted, icon: DriverApp.not_available, onTap: () { selectAction(context, 4, model); }, ), SizedBox( height: 15 ), ActionSheetButton( label: TranslationBase .of(context) .deliveredRejected, icon: DriverApp.rejected_icon, onTap: () { selectAction(context, 5, model); }, ), SizedBox( height: 15 ), ActionSheetButton( label: TranslationBase .of(context) .canceled, icon: DriverApp.not_reachable_icon, onTap: () { selectAction(context, 6, model); }, ), SizedBox( height: 15 ), ], )), ]), ), ); } selectAction(BuildContext context, orderStatus, OrdersViewModel model) { String orderStatusText; this.orderStatus = orderStatus; switch (orderStatus) { case 3: orderStatusText = TranslationBase .of(context) .delivered; break; case 4: orderStatusText = TranslationBase .of(context) .deliveredAccepted; break; case 5: orderStatusText = TranslationBase .of(context) .deliveredRejected; break; case 6: orderStatusText = TranslationBase .of(context) .canceled; break; } showDialog( context: context, builder: (BuildContext context) { return CustomDialog( orderStatusText: orderStatusText, callService: () { updateOrderStatus(context, model); }, model: model,); }); } updateOrderStatus(BuildContext context, OrdersViewModel model) async { UpdateOrderStatusRequestModel updateOrderStatusRequestModel = UpdateOrderStatusRequestModel(deliveryOrderID: item.orderID, deliveryOrderStatus: orderStatus, rejectionReason: "NO Reason", cancleReason: ""); await model.updateOrderStatus(updateOrderStatusRequestModel); if (model.state == ViewState.ErrorLocal) { Utils.showErrorToast(model.error); Navigator.of(context).pop(); model.hideBottomSheet(); } else { Navigator.of(context).pop(); model.hideBottomSheet(); Navigator.push( context, MaterialPageRoute( builder: (context) => DeliveryConfirmedPage(item), ), ); } } } \ No newline at end of file diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart index 0e07425..9f70074 100644 --- a/lib/uitl/translations_delegate_base.dart +++ b/lib/uitl/translations_delegate_base.dart @@ -103,6 +103,26 @@ class TranslationBase { String get confirmationSent => localizedValues['confirmationSent'][locale.languageCode]; + + String get delivered => localizedValues['delivered'][locale.languageCode]; + + String get deliveredAccepted => + localizedValues['deliveredAccepted'][locale.languageCode]; + + String get deliveredRejected => + localizedValues['deliveredRejected'][locale.languageCode]; + + String get canceled => localizedValues['canceled'][locale.languageCode]; + + String get selectAction => + localizedValues['selectAction'][locale.languageCode]; + + String get youHaveSelected => + localizedValues['youHaveSelected'][locale.languageCode]; + + String get confirm => localizedValues['confirm'][locale.languageCode]; + + String get areYouSure => localizedValues['areYouSure'][locale.languageCode]; } class TranslationBaseDelegate extends LocalizationsDelegate { diff --git a/lib/widgets/bottom_sheet/action_sheet_button.dart b/lib/widgets/bottom_sheet/action_sheet_button.dart index 23d7e98..f7d53f5 100644 --- a/lib/widgets/bottom_sheet/action_sheet_button.dart +++ b/lib/widgets/bottom_sheet/action_sheet_button.dart @@ -15,16 +15,18 @@ class ActionSheetButton extends StatelessWidget { onTap: onTap, child: Container( height: SizeConfig.isMobilePortrait - ? MediaQuery.of(context).size.height * 0.07 + ? MediaQuery.of(context).size.height * 0.08 : MediaQuery.of(context).size.height * 0.14, - decoration: BoxDecoration( - border: Border.all(color: Colors.blue), - borderRadius: BorderRadius.circular(6), - gradient: LinearGradient(colors: [ - Hexcolor('#DCE6E8'), - Hexcolor('#FFFFFF'), - ], begin: Alignment.topLeft), - ), + decoration: BoxDecoration(boxShadow: [ + BoxShadow( + color: Hexcolor("#DBE5E6"), + spreadRadius: 15, + blurRadius: 15, + offset: Offset(0, 7), + + // changes position of shadow + ), + ], borderRadius: BorderRadius.circular(15), color: Colors.white), child: Row( mainAxisAlignment: MainAxisAlignment.start, children: [ @@ -61,7 +63,9 @@ class ActionSheetButton extends StatelessWidget { padding: EdgeInsets.only(top: 5.0), child: Text( label, - style: TextStyle(fontSize: 18.0), + style: TextStyle(fontSize: 22.0, + fontFamily: "Metropolis-Bold", + color: Hexcolor("##1A1818")), ), ) ], diff --git a/lib/widgets/bottom_sheet/custom_bottom_sheet.dart b/lib/widgets/bottom_sheet/custom_bottom_sheet.dart index 8131149..aa644d9 100644 --- a/lib/widgets/bottom_sheet/custom_bottom_sheet.dart +++ b/lib/widgets/bottom_sheet/custom_bottom_sheet.dart @@ -12,7 +12,7 @@ class CustomBottomSheet extends StatelessWidget { return Container( padding: EdgeInsets.symmetric(vertical: 12.0), decoration: BoxDecoration( - color: Hexcolor("#FEFEFE"), + color: Colors.white, borderRadius: BorderRadius.only( topLeft: Radius.circular(30.0), topRight: Radius.circular(30.0), diff --git a/lib/widgets/buttons/secondary_button.dart b/lib/widgets/buttons/secondary_button.dart index dc88f3d..4aa11f2 100644 --- a/lib/widgets/buttons/secondary_button.dart +++ b/lib/widgets/buttons/secondary_button.dart @@ -191,8 +191,17 @@ class _SecondaryButtonState extends State height: MediaQuery.of(context).size.width * 2.2, decoration: BoxDecoration( shape: BoxShape.circle, - color: widget.color != null ? widget.color : Hexcolor( - "#1CA4AA"), + gradient: widget.color != null + ? null + : LinearGradient( + colors: [ + Hexcolor("#45B7AE"), + Hexcolor("#119FA9") + ], + ), + color: widget.color != null + ? widget.color + : Hexcolor("#000000"), ), ), ), @@ -201,10 +210,10 @@ class _SecondaryButtonState extends State padding: widget.iconOnly ? EdgeInsets.symmetric(vertical: 4.0, horizontal: 5.0) : EdgeInsets.only( - top: widget.small ? 8.0 : 12.0, - bottom: widget.small ? 6.0 : 12.0, - left: 18.0, - right: 18.0), + top: widget.small ? 8.0 : 16.0, + bottom: widget.small ? 6.0 : 16.0, + left: 18.0, + right: 18.0), child: Stack( children: [ Positioned( diff --git a/lib/widgets/data_display/dialog/custom_dialog.dart b/lib/widgets/data_display/dialog/custom_dialog.dart index 88ad467..64315c6 100644 --- a/lib/widgets/data_display/dialog/custom_dialog.dart +++ b/lib/widgets/data_display/dialog/custom_dialog.dart @@ -1,6 +1,7 @@ import 'package:driverapp/core/enum/viewstate.dart'; import 'package:driverapp/core/viewModels/orders_view_model.dart'; import 'package:driverapp/pages/base/base_view.dart'; +import 'package:driverapp/uitl/translations_delegate_base.dart'; import 'package:driverapp/widgets/buttons/secondary_button.dart'; import 'package:flutter/material.dart'; @@ -34,7 +35,7 @@ class CustomDialog extends StatelessWidget { height: 30, ), Text( - 'you have selected:', + TranslationBase.of(context).youHaveSelected, style: TextStyle( fontWeight: FontWeight.w500, color: Colors.black, @@ -54,7 +55,9 @@ class CustomDialog extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.end, children: [ Texts( - 'Are you sure?', + TranslationBase + .of(context) + .areYouSure, color: Colors.black, fontSize: 20, ), @@ -62,7 +65,9 @@ class CustomDialog extends StatelessWidget { height: 10, ), SecondaryButton( - label: "Confirm", + label: TranslationBase + .of(context) + .confirm, loading: model.state == ViewState.BusyLocal, onTap: () { model.setState(ViewState.BusyLocal); @@ -73,7 +78,9 @@ class CustomDialog extends StatelessWidget { height: 10, ), SecondaryButton( - label: "Cancel", + label: TranslationBase + .of(context) + .canceled, onTap: () { model.hideBottomSheet(); Navigator.of(context).pop(); diff --git a/lib/widgets/others/app_scaffold_widget.dart b/lib/widgets/others/app_scaffold_widget.dart index 98a990c..b4cdec7 100644 --- a/lib/widgets/others/app_scaffold_widget.dart +++ b/lib/widgets/others/app_scaffold_widget.dart @@ -33,17 +33,16 @@ class AppScaffold extends StatelessWidget { Widget build(BuildContext context) { AppGlobal.context = context; return SafeArea( + bottom: false, child: Scaffold( - backgroundColor: appBarColor ?? Theme.of(context).scaffoldBackgroundColor, + backgroundColor: + appBarColor ?? Theme.of(context).scaffoldBackgroundColor, appBar: isShowAppBar ? AppBar( - elevation: 0, - backgroundColor: Theme - .of(context) - .appBarTheme - .color, - textTheme: TextTheme( - headline6: TextStyle( + elevation: 0, + backgroundColor: Theme.of(context).appBarTheme.color, + textTheme: TextTheme( + headline6: TextStyle( color: titleColor ?? Colors.white, fontWeight: FontWeight.bold), ), @@ -80,6 +79,6 @@ class AppScaffold extends StatelessWidget { } buildBodyWidget() { - return Stack(children: [body, buildAppLoaderWidget(isLoading)]); + return body; } }