232 lines
7.6 KiB
Dart
232 lines
7.6 KiB
Dart
import 'package:mobdr/config/constant.dart';
|
|
import 'package:mobdr/config/global_style.dart';
|
|
import 'package:mobdr/ui/reusable/reusable_widget.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
|
class OrderStatusPage extends StatefulWidget {
|
|
@override
|
|
_OrderStatusPageState createState() => _OrderStatusPageState();
|
|
}
|
|
|
|
class _OrderStatusPageState extends State<OrderStatusPage> {
|
|
// initialize reusable widget
|
|
final _reusableWidget = ReusableWidget();
|
|
|
|
@override
|
|
void initState() {
|
|
super.initState();
|
|
}
|
|
|
|
@override
|
|
void dispose() {
|
|
super.dispose();
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Scaffold(
|
|
appBar: AppBar(
|
|
iconTheme: IconThemeData(
|
|
color: GlobalStyle.appBarIconThemeColor,
|
|
),
|
|
elevation: GlobalStyle.appBarElevation,
|
|
title: Text(
|
|
'Order Status',
|
|
style: GlobalStyle.appBarTitle,
|
|
),
|
|
backgroundColor: GlobalStyle.appBarBackgroundColor,
|
|
systemOverlayStyle: GlobalStyle.appBarSystemOverlayStyle,
|
|
bottom: _reusableWidget.bottomAppBar(),
|
|
),
|
|
body: Container(
|
|
child: ListView(
|
|
padding: EdgeInsets.all(32),
|
|
children: [
|
|
_createPathTop('11 Sep 2019 08:40', 'Order Completed',
|
|
'Your order is completed'),
|
|
_createPath('11 Sep 2019 08:39', 'Order Arrived',
|
|
'Your order has arrived'),
|
|
_createPath('9 Sep 2019 14:12', 'Order Sent',
|
|
'Your order is being shipped by courier'),
|
|
_createPath('9 Sep 2019 14:12', 'Ready to Pickup',
|
|
'Your order is ready to be picked up by the courier'),
|
|
_createPath('9 Sep 2019 12:12', 'Order Processed',
|
|
'Your order is being processed'),
|
|
_createPath('9 Sep 2019 11:52', 'Payment Received',
|
|
'Payment has been received'),
|
|
_createPath('9 Sep 2019 11:32', 'Waiting for Payment',
|
|
'We are waiting for your payment'),
|
|
_createPathDown('9 Sep 2019 11:32', 'Order Placed',
|
|
'We have received your order'),
|
|
],
|
|
),
|
|
));
|
|
}
|
|
|
|
Widget _createPathTop(
|
|
String date, String orderStatus, String orderDescription) {
|
|
return Stack(
|
|
children: [
|
|
Container(
|
|
margin: EdgeInsets.only(top: 0),
|
|
width: 16,
|
|
height: 16,
|
|
decoration: new BoxDecoration(
|
|
shape: BoxShape
|
|
.circle, // You can use like this way or like the below line
|
|
//borderRadius: new BorderRadius.circular(30.0),
|
|
color: PRIMARY_COLOR,
|
|
),
|
|
),
|
|
IntrinsicHeight(
|
|
child: Row(
|
|
children: <Widget>[
|
|
Container(
|
|
margin: EdgeInsets.only(left: 7.5, right: 7.5),
|
|
child: Container(
|
|
width: 1,
|
|
color: PRIMARY_COLOR,
|
|
),
|
|
),
|
|
Expanded(
|
|
child: Container(
|
|
margin: EdgeInsets.only(left: 32, right: 32),
|
|
child: Column(
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
children: [
|
|
Text(orderStatus,
|
|
style: TextStyle(
|
|
fontWeight: FontWeight.bold, color: CHARCOAL)),
|
|
SizedBox(
|
|
height: 4,
|
|
),
|
|
Text(date,
|
|
style:
|
|
TextStyle(color: Colors.grey[400], fontSize: 11)),
|
|
SizedBox(
|
|
height: 8,
|
|
),
|
|
Text(orderDescription,
|
|
style: TextStyle(color: BLACK_GREY)),
|
|
SizedBox(
|
|
height: 24,
|
|
)
|
|
],
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
)
|
|
],
|
|
);
|
|
}
|
|
|
|
Widget _createPath(String date, String orderStatus, String orderDescription) {
|
|
return Stack(
|
|
children: [
|
|
Container(
|
|
margin: EdgeInsets.only(top: 0),
|
|
width: 16,
|
|
height: 16,
|
|
decoration: new BoxDecoration(
|
|
shape: BoxShape
|
|
.circle, // You can use like this way or like the below line
|
|
//borderRadius: new BorderRadius.circular(30.0),
|
|
color: Colors.grey[400],
|
|
),
|
|
),
|
|
IntrinsicHeight(
|
|
child: Row(
|
|
children: <Widget>[
|
|
Container(
|
|
margin: EdgeInsets.only(left: 7.5, right: 7.5),
|
|
child: Container(
|
|
width: 1,
|
|
color: Colors.grey[400],
|
|
),
|
|
),
|
|
Expanded(
|
|
child: Container(
|
|
margin: EdgeInsets.only(left: 32, right: 32),
|
|
child: Column(
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
children: [
|
|
Text(orderStatus,
|
|
style: TextStyle(
|
|
fontWeight: FontWeight.bold, color: CHARCOAL)),
|
|
SizedBox(
|
|
height: 4,
|
|
),
|
|
Text(date,
|
|
style:
|
|
TextStyle(color: Colors.grey[400], fontSize: 11)),
|
|
SizedBox(
|
|
height: 8,
|
|
),
|
|
Text(orderDescription,
|
|
style: TextStyle(color: BLACK_GREY)),
|
|
SizedBox(
|
|
height: 24,
|
|
)
|
|
],
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
)
|
|
],
|
|
);
|
|
}
|
|
|
|
Widget _createPathDown(
|
|
String date, String orderStatus, String orderDescription) {
|
|
return Stack(
|
|
children: [
|
|
Container(
|
|
margin: EdgeInsets.only(top: 0),
|
|
width: 16,
|
|
height: 16,
|
|
decoration: new BoxDecoration(
|
|
shape: BoxShape
|
|
.circle, // You can use like this way or like the below line
|
|
//borderRadius: new BorderRadius.circular(30.0),
|
|
color: Colors.grey[400],
|
|
),
|
|
),
|
|
IntrinsicHeight(
|
|
child: Row(
|
|
children: <Widget>[
|
|
Expanded(
|
|
child: Container(
|
|
margin: EdgeInsets.only(left: 48, right: 48),
|
|
child: Column(
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
children: [
|
|
Text(orderStatus,
|
|
style: TextStyle(
|
|
fontWeight: FontWeight.bold, color: CHARCOAL)),
|
|
SizedBox(
|
|
height: 4,
|
|
),
|
|
Text(date,
|
|
style:
|
|
TextStyle(color: Colors.grey[400], fontSize: 11)),
|
|
SizedBox(
|
|
height: 8,
|
|
),
|
|
Text(orderDescription,
|
|
style: TextStyle(color: BLACK_GREY)),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
)
|
|
],
|
|
);
|
|
}
|
|
}
|