import 'package:fcs/domain/vo/shipping_address.dart'; import 'package:fcs/helpers/theme.dart'; import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'model/shipment_address_model.dart'; import 'shipping_address_row.dart'; class ShippingAddressList extends StatefulWidget { @override _ShippingAddressListState createState() => _ShippingAddressListState(); } class _ShippingAddressListState extends State { bool _isLoading = false; @override void initState() { super.initState(); } @override void dispose() { super.dispose(); } @override Widget build(BuildContext context) { var shipmentModel = Provider.of(context); return LocalProgress( inAsyncCall: _isLoading, child: Scaffold( appBar: AppBar( centerTitle: true, leading: new IconButton( icon: new Icon(Icons.close), onPressed: () => Navigator.of(context).pop(), ), backgroundColor: primaryColor, title: LocalText( context, "shipping_addresses", fontSize: 20, color: Colors.white, ), actions: [ IconButton( icon: Icon( Icons.search, color: Colors.white, ), iconSize: 30, // onPressed: () => showPlacesSearch(context), ), ], ), body: Column( children: [ Expanded( child: Column( children: getAddressList(context, shipmentModel.shippingAddresses), ), ), Container( padding: EdgeInsets.only(top: 20, bottom: 15, right: 15), child: Align( alignment: Alignment.bottomRight, child: Container( width: 130, height: 40, child: FloatingActionButton.extended( materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, onPressed: () { Navigator.push( context, BottomUpPageRoute(ShippingAddressList()), ); }, icon: Icon(Icons.add), label: Text( 'Add New\nAddress', style: TextStyle(fontSize: 12), ), backgroundColor: primaryColor, ), ), ), ), ], )), ); } List getAddressList( BuildContext context, List addresses) { return addresses.asMap().entries.map((s) { return InkWell( onTap: () { Navigator.pop(context, s.value); }, child: ShippingAddressRow(shippingAddress: s.value, index: s.key), ); }).toList(); } }