diff --git a/lib/pages/dashboard/dashboard_screen.dart b/lib/pages/dashboard/dashboard_screen.dart index 4c62adc..da4e318 100644 --- a/lib/pages/dashboard/dashboard_screen.dart +++ b/lib/pages/dashboard/dashboard_screen.dart @@ -12,10 +12,9 @@ import 'package:driverapp/pages/setting/setting_page.dart'; import 'package:driverapp/uitl/app_toast.dart'; import 'package:driverapp/uitl/translations_delegate_base.dart'; import 'package:driverapp/uitl/utils.dart'; -import 'package:driverapp/widgets/delivery/distance_in_kilometers.dart'; +import 'package:driverapp/widgets/order/order_info_card.dart'; import 'package:driverapp/widgets/others/app_scaffold_widget.dart'; 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'; @@ -493,118 +492,15 @@ class _DashboardScreenState extends State { itemBuilder: (BuildContext context, int index) { return Padding( padding: EdgeInsets.symmetric(horizontal: 0.2), - child: InkWell( - child: Container( - child: RoundedContainer( - showShadow: true, - raduis: 25.0, - height: MediaQuery.of(context).orientation == - Orientation.portrait - ? MediaQuery.of(context).size.height * 0.120 - : MediaQuery.of(context).size.height * 0.209, - child: Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Expanded( - flex: 1, - child: Column( - mainAxisAlignment: - MainAxisAlignment.start, - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Padding( - padding: EdgeInsets.only( - left: 15.0, top: 14.0), - child: Image.asset( - 'assets/images/location.png', - height: MediaQuery.of(context) - .orientation == - Orientation.portrait - ? MediaQuery.of(context) - .size - .height * - 0.06 - : MediaQuery.of(context) - .size - .height * - 0.11, - width: MediaQuery.of(context) - .orientation == - Orientation.portrait - ? MediaQuery.of(context) - .size - .width * - 0.05 - : MediaQuery.of(context) - .size - .width * - 0.09, - ), - ) - ], - ), - ), - if (model.orders.length != 0) - Expanded( - flex: 5, - child: Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Padding( - padding: EdgeInsets.only(top: 20.0), - child: Text( - model.orders[index].firstName + - ' ' + - model.orders[index].lastName, - style: TextStyle( - fontSize: 18.0, - color: Hexcolor("#343333"), - fontWeight: FontWeight.bold), - ), - ), - Text( - model.orders[index].mobileNumber, - style: TextStyle( - color: Color(0xff30B7B9), - fontWeight: FontWeight.w600, - fontSize: 15.0, - ), - ), - Expanded( - child: Text( - model.orders[index].orderID - .toString(), - style: TextStyle( - fontSize: 15.0, - fontWeight: FontWeight.w400, - letterSpacing: 8.0), - ), - ), - ], - ), - ), - Padding( - padding: EdgeInsets.all(8.0), - child: DistanceInKilometers( - distanceInKilometers: model - .orders[index].distanceInKilometers, - ), - ), - ], - ), - ), - ), - onTap: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => - InformationPage(model.orders[index]))); - }, - ), + child: OrderInfoCard( + order: model.orders[index], + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => InformationPage( + model.orders[index]))); + }), ); }, ), @@ -635,3 +531,5 @@ class _DashboardScreenState extends State { } } } + + diff --git a/lib/pages/orders/deliverd_orders_page.dart b/lib/pages/orders/deliverd_orders_page.dart index af3ce00..8fa2b19 100644 --- a/lib/pages/orders/deliverd_orders_page.dart +++ b/lib/pages/orders/deliverd_orders_page.dart @@ -1,11 +1,9 @@ import 'package:driverapp/core/viewModels/orders_view_model.dart'; -import 'package:driverapp/widgets/delivery/distance_in_kilometers.dart'; +import 'package:driverapp/widgets/order/order_info_card.dart'; import 'package:driverapp/widgets/others/app_scaffold_widget.dart'; 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'; @@ -41,115 +39,9 @@ class _DeliverdOrdersPageState extends State { itemBuilder: (BuildContext context, int index) { return Padding( padding: EdgeInsets.symmetric(horizontal: 12.2), - child: InkWell( - child: RoundedContainer( - raduis: 25.0, - height: MediaQuery.of(context).orientation == - Orientation.portrait - ? MediaQuery.of(context).size.height * 0.120 - : MediaQuery.of(context).size.height * 0.209, - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Expanded( - flex: 1, - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: EdgeInsets.only( - left: 15.0, top: 14.0), - child: Image.asset( - 'assets/images/location.png', - height: MediaQuery.of(context) - .orientation == - Orientation.portrait - ? MediaQuery.of(context) - .size - .height * - 0.06 - : MediaQuery.of(context) - .size - .height * - 0.11, - width: MediaQuery.of(context) - .orientation == - Orientation.portrait - ? MediaQuery.of(context) - .size - .width * - 0.05 - : MediaQuery.of(context) - .size - .width * - 0.09, - ), - ) - ], - ), - ), - if (model.orders.length != 0) - Expanded( - flex: 5, - child: Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Padding( - padding: EdgeInsets.only(top: 20.0), - child: Text( - model.deliverdOrders[index] - .firstName + - ' ' + - model.orders[index].lastName, - style: TextStyle( - fontSize: 18.0, - color: Hexcolor("#343333"), - fontWeight: FontWeight.bold), - ), - ), - Text( - model - .deliverdOrders[index].mobileNumber, - style: TextStyle( - color: Color(0xff30B7B9), - fontWeight: FontWeight.w600, - fontSize: 15.0, - ), - ), - Expanded( - child: Text( - model.deliverdOrders[index].orderID - .toString(), - style: TextStyle( - fontSize: 18.0, - fontWeight: FontWeight.w400, - letterSpacing: 8.0), - ), - ), - ], - ), - ), - Padding( - padding: EdgeInsets.all(8.0), - child: DistanceInKilometers( - distanceInKilometers: model - .deliverdOrders[index].distanceInKilometers, - ), - ), - ], - ), - ), -// onTap: () { -// Navigator.push( -// context, -// MaterialPageRoute( -// builder: (context) => -// InformationPage(model.orders[index]))); -// }, - ), - ); + child: OrderInfoCard( + order: model.deliverdOrders[index], + )); }, ), ), diff --git a/lib/pages/orders/pending_orders_page.dart b/lib/pages/orders/pending_orders_page.dart index f6a90d3..95133ec 100644 --- a/lib/pages/orders/pending_orders_page.dart +++ b/lib/pages/orders/pending_orders_page.dart @@ -1,12 +1,9 @@ import 'package:driverapp/core/viewModels/orders_view_model.dart'; -import 'package:driverapp/pages/delivery/information_page.dart'; import 'package:driverapp/uitl/translations_delegate_base.dart'; -import 'package:driverapp/widgets/delivery/distance_in_kilometers.dart'; +import 'package:driverapp/widgets/order/order_info_card.dart'; import 'package:driverapp/widgets/others/app_scaffold_widget.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'; @@ -38,102 +35,7 @@ class _OrdersListScreenState extends State { itemBuilder: (BuildContext context, int index) { return Padding( padding: EdgeInsets.symmetric(horizontal: 12.2), - child: InkWell( - child: RoundedContainer( - raduis: 25.0, - height: MediaQuery.of(context).orientation == - Orientation.portrait - ? MediaQuery.of(context).size.height * 0.120 - : MediaQuery.of(context).size.height * 0.209, - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Expanded( - flex: 1, - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: - EdgeInsets.only(left: 15.0, top: 14.0), - child: Image.asset( - 'assets/images/location.png', - height: MediaQuery.of(context) - .orientation == - Orientation.portrait - ? MediaQuery.of(context).size.height * - 0.06 - : MediaQuery.of(context).size.height * - 0.11, - width: MediaQuery.of(context) - .orientation == - Orientation.portrait - ? MediaQuery.of(context).size.width * - 0.05 - : MediaQuery.of(context).size.width * - 0.09, - ), - ) - ], - ), - ), - if (model.orders.length != 0) - Expanded( - flex: 5, - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: EdgeInsets.only(top: 20.0), - child: Text( - model.orders[index].firstName + - ' ' + - model.orders[index].lastName, - style: TextStyle( - fontSize: 18.0, - color: Hexcolor("#343333"), - fontWeight: FontWeight.bold), - ), - ), - Text( - model.orders[index].mobileNumber, - style: TextStyle( - color: Color(0xff30B7B9), - fontWeight: FontWeight.w600, - fontSize: 15.0, - ), - ), - Expanded( - child: Text( - model.orders[index].orderID.toString(), - style: TextStyle( - fontSize: 18.0, - fontWeight: FontWeight.w400, - letterSpacing: 8.0), - ), - ), - ], - ), - ), - Padding( - padding: EdgeInsets.all(8.0), - child: DistanceInKilometers( - distanceInKilometers: - model.orders[index].distanceInKilometers, - ), - ), - ], - ), - ), - onTap: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => - InformationPage(model.orders[index]))); - }, - ), + child: OrderInfoCard(order: model.orders[index]), ); }, ), diff --git a/lib/uitl/utils.dart b/lib/uitl/utils.dart index ede4f9c..fba7430 100644 --- a/lib/uitl/utils.dart +++ b/lib/uitl/utils.dart @@ -50,5 +50,15 @@ class Utils { return currentLocation; } - static nameFormat(String) {} + static formatName(String name) { + List names = name.split(" "); + List formattedNamesList = []; + names.forEach((name) { + name = name.toLowerCase(); + name = name[0].toUpperCase() + name.substring(1); + + formattedNamesList.add(name); + }); + return formattedNamesList.join(' '); + } } diff --git a/lib/widgets/order/order_info_card.dart b/lib/widgets/order/order_info_card.dart new file mode 100644 index 0000000..9e02cd9 --- /dev/null +++ b/lib/widgets/order/order_info_card.dart @@ -0,0 +1,100 @@ +import 'package:driverapp/uitl/utils.dart'; +import 'package:driverapp/widgets/delivery/distance_in_kilometers.dart'; +import 'package:driverapp/widgets/others/rounded_container.dart'; +import 'package:flutter/material.dart'; +import 'package:hexcolor/hexcolor.dart'; + +class OrderInfoCard extends StatelessWidget { + const OrderInfoCard({Key key, this.order, this.onTap}) : super(key: key); + + final dynamic order; + final Function onTap; + + @override + Widget build(BuildContext context) { + return InkWell( + child: Container( + child: RoundedContainer( + showShadow: true, + raduis: 25.0, + height: MediaQuery.of(context).orientation == Orientation.portrait + ? MediaQuery.of(context).size.height * 0.120 + : MediaQuery.of(context).size.height * 0.209, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded( + flex: 1, + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: EdgeInsets.only(left: 15.0, top: 14.0), + child: Image.asset( + 'assets/images/location.png', + height: MediaQuery.of(context).orientation == + Orientation.portrait + ? MediaQuery.of(context).size.height * 0.06 + : MediaQuery.of(context).size.height * 0.11, + width: MediaQuery.of(context).orientation == + Orientation.portrait + ? MediaQuery.of(context).size.width * 0.05 + : MediaQuery.of(context).size.width * 0.09, + ), + ) + ], + ), + ), + Expanded( + flex: 5, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: EdgeInsets.only(top: 20.0), + child: Text( + Utils.formatName( + order.firstName + ' ' + order.lastName), + style: TextStyle( + fontSize: 18.0, + color: Hexcolor("#343333"), + fontWeight: FontWeight.bold), + ), + ), + Text( + order.mobileNumber, + style: TextStyle( + color: Color(0xff30B7B9), + fontWeight: FontWeight.w600, + fontSize: 15.0, + ), + ), + Expanded( + child: Text( + order.orderID.toString(), + style: TextStyle( + fontSize: 15.0, + fontWeight: FontWeight.w400, + letterSpacing: 8.0), + ), + ), + ], + ), + ), + Padding( + padding: EdgeInsets.all(8.0), + child: DistanceInKilometers( + distanceInKilometers: order.distanceInKilometers, + ), + ), + ], + ), + ), + ), + onTap: () { + onTap(); + }, + ); + } +}