mobdr/lib/ui/shopping_cart/change_address.dart

150 lines
5.4 KiB
Dart

import 'package:mobdr/config/constant.dart';
import 'package:mobdr/config/global_style.dart';
import 'package:mobdr/model/address_model.dart';
import 'package:mobdr/ui/reusable/reusable_widget.dart';
import 'package:flutter/material.dart';
class ChangeAddressPage extends StatefulWidget {
@override
_ChangeAddressPageState createState() => _ChangeAddressPageState();
}
class _ChangeAddressPageState extends State<ChangeAddressPage> {
// 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(
'Change Address',
style: GlobalStyle.appBarTitle,
),
backgroundColor: GlobalStyle.appBarBackgroundColor,
systemOverlayStyle: GlobalStyle.appBarSystemOverlayStyle,
bottom: _reusableWidget.bottomAppBar(),
),
body: ListView.builder(
itemCount: addressData.length,
// Add one more item for progress indicator
padding: EdgeInsets.symmetric(vertical: 0),
itemBuilder: (BuildContext context, int index) {
return _buildAddressCard(index);
},
));
}
Widget _buildAddressCard(int index) {
return Container(
margin: EdgeInsets.fromLTRB(12, 6, 12, 0),
child: Card(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
),
elevation: 2,
color: Colors.white,
child: Container(
padding: EdgeInsets.all(16),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
addressData[index].defaultAddress == true
? Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(addressData[index].title,
style: GlobalStyle.addressTitle),
Container(
margin: EdgeInsets.only(right: 8),
padding: EdgeInsets.fromLTRB(8, 2, 8, 2),
decoration: BoxDecoration(
color: SOFT_BLUE,
borderRadius: BorderRadius.circular(2)),
child: Row(
children: [
Text('Default',
style: TextStyle(
color: Colors.white, fontSize: 13)),
SizedBox(
width: 4,
),
Icon(Icons.done, color: Colors.white, size: 11)
],
),
)
],
)
: Text(addressData[index].title,
style: GlobalStyle.addressTitle),
Container(
margin: EdgeInsets.only(top: 20),
child: Text(addressData[index].recipientName,
style: GlobalStyle.addressContent),
),
Container(
margin: EdgeInsets.only(top: 4),
child: Text(addressData[index].phoneNumber,
style: GlobalStyle.addressContent),
),
Container(
margin: EdgeInsets.only(top: 4),
child: Text(addressData[index].addressLine1,
style: GlobalStyle.addressContent),
),
Container(
margin: EdgeInsets.only(top: 4),
child: Text(
addressData[index].addressLine2 +
' ' +
addressData[index].postalCode,
style: GlobalStyle.addressContent),
),
Container(
margin: EdgeInsets.only(top: 4),
child: Text(addressData[index].state,
style: GlobalStyle.addressContent),
),
Container(
margin: EdgeInsets.only(top: 8),
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
addressData[index].defaultAddress == false
? GestureDetector(
onTap: () {
Navigator.pop(context);
},
child: Text('Use this',
style: GlobalStyle.addressAction),
)
: Wrap(),
index != 0
? SizedBox(
width: 12,
)
: Wrap(),
],
))
],
),
),
),
);
}
}