From 8a813023f44996f46109201144211b6b5f65167f Mon Sep 17 00:00:00 2001 From: sainw Date: Sun, 10 Jan 2021 23:05:36 +0630 Subject: [PATCH] fix delivery address --- lib/pages/carton/package_carton_editor.dart | 6 ++++- .../widgets/delivery_address_selection.dart | 27 +++++++++++++++++-- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/lib/pages/carton/package_carton_editor.dart b/lib/pages/carton/package_carton_editor.dart index 04a5793..b269fc9 100644 --- a/lib/pages/carton/package_carton_editor.dart +++ b/lib/pages/carton/package_carton_editor.dart @@ -81,9 +81,12 @@ class _PackageCartonEditorState extends State { var addressModel = Provider.of(context, listen: false); - this._deliveryAddresses = isFromPackages + var deliveryAddresses = isFromPackages ? await addressModel.getDeliveryAddresses(_carton.userID) : await addressModel.getDeliveryAddresses(_carton.receiverID); + setState(() { + this._deliveryAddresses = deliveryAddresses; + }); } _getCartonSize() { @@ -204,6 +207,7 @@ class _PackageCartonEditorState extends State { deliveryAddress: _deliveryAddress, deliveryAddresses: this._deliveryAddresses, user: widget.consignee, + onAdded: () => _getDeliverAddresses(), )), ); if (d == null) return; diff --git a/lib/pages/widgets/delivery_address_selection.dart b/lib/pages/widgets/delivery_address_selection.dart index 23f917f..f505409 100644 --- a/lib/pages/widgets/delivery_address_selection.dart +++ b/lib/pages/widgets/delivery_address_selection.dart @@ -3,21 +3,40 @@ import 'package:fcs/domain/vo/delivery_address.dart'; import 'package:fcs/helpers/theme.dart'; import 'package:fcs/pages/delivery_address/delivery_address_editor.dart'; import 'package:fcs/pages/delivery_address/delivery_address_row.dart'; +import 'package:fcs/pages/delivery_address/model/delivery_address_model.dart'; import 'package:fcs/pages/widgets/local_text.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +typedef OnAdded(); class DeliveryAddressSelection extends StatelessWidget { final DeliveryAddress deliveryAddress; final List deliveryAddresses; final User user; + final OnAdded onAdded; const DeliveryAddressSelection( - {Key key, this.deliveryAddress, this.deliveryAddresses, this.user}) + {Key key, + this.deliveryAddress, + this.deliveryAddresses, + this.user, + this.onAdded}) : super(key: key); + Future> _getDeliverAddresses( + BuildContext context) async { + var addressModel = + Provider.of(context, listen: false); + + var _deliveryAddresses = await addressModel.getDeliveryAddresses(user.id); + return _deliveryAddresses; + } + @override Widget build(BuildContext context) { + if (user != null) {} return Scaffold( appBar: AppBar( centerTitle: true, @@ -32,10 +51,14 @@ class DeliveryAddressSelection extends StatelessWidget { ), floatingActionButton: FloatingActionButton.extended( onPressed: () async { - Navigator.of(context).push(CupertinoPageRoute( + bool updated = await Navigator.of(context).push(CupertinoPageRoute( builder: (context) => DeliveryAddressEditor( user: user, ))); + if (updated && onAdded != null) { + onAdded(); + Navigator.pop(context); + } }, icon: Icon(Icons.add), label: LocalText(context, "delivery_address.new_address",