import 'package:fcs/model/shipment_model.dart'; import 'package:fcs/pages/search_page.dart'; import 'package:fcs/pages_fcs/shipping_address_row.dart'; import 'package:fcs/vo/shipping_address.dart'; import 'package:fcs/widget/bottom_up_page_route.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../theme/theme.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: Text(AppTranslations.of(context).text("shipping_addresses")), 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(); } }