From 8f80b6976ffe63250918c8b00414ff035b7743d0 Mon Sep 17 00:00:00 2001 From: julian-CStack Date: Tue, 7 Mar 2023 07:48:25 -0600 Subject: [PATCH] load address ids in futurebuilder --- .../receive_view/addresses/address_card.dart | 21 ++++++++++++------- .../addresses/receiving_addresses_view.dart | 5 +++-- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/lib/pages/receive_view/addresses/address_card.dart b/lib/pages/receive_view/addresses/address_card.dart index 43327af8f..0bc922e9c 100644 --- a/lib/pages/receive_view/addresses/address_card.dart +++ b/lib/pages/receive_view/addresses/address_card.dart @@ -21,13 +21,13 @@ import 'package:stackwallet/widgets/rounded_white_container.dart'; class AddressCard extends StatefulWidget { const AddressCard({ Key? key, - required this.address, + required this.addressId, required this.walletId, required this.coin, this.clipboard = const ClipboardWrapper(), }) : super(key: key); - final Address address; + final int addressId; final String walletId; final Coin coin; final ClipboardInterface clipboard; @@ -38,18 +38,23 @@ class AddressCard extends StatefulWidget { class _AddressCardState extends State { late Stream stream; + late final Address address; AddressLabel? label; @override void initState() { - label = MainDB.instance - .getAddressLabelSync(widget.walletId, widget.address.value); + address = MainDB.instance.isar.addresses + .where() + .idEqualTo(widget.addressId) + .findFirstSync()!; + + label = MainDB.instance.getAddressLabelSync(widget.walletId, address.value); Id? id = label?.id; if (id == null) { label = AddressLabel( walletId: widget.walletId, - addressString: widget.address.value, + addressString: address.value, value: "", ); id = MainDB.instance.putAddressLabelSync(label!); @@ -97,7 +102,7 @@ class _AddressCardState extends State { children: [ Expanded( child: SelectableText( - widget.address.value, + address.value, style: STextStyles.itemSubtitle12(context), ), ) @@ -119,7 +124,7 @@ class _AddressCardState extends State { onPressed: () async { await widget.clipboard.setData( ClipboardData( - text: widget.address.value, + text: address.value, ), ); if (mounted) { @@ -149,7 +154,7 @@ class _AddressCardState extends State { showDialog( context: context, builder: (context) => AddressQrPopup( - addressString: widget.address.value, + addressString: address.value, coin: widget.coin, clipboard: widget.clipboard, ), diff --git a/lib/pages/receive_view/addresses/receiving_addresses_view.dart b/lib/pages/receive_view/addresses/receiving_addresses_view.dart index 50dbd6d21..aec8f24c3 100644 --- a/lib/pages/receive_view/addresses/receiving_addresses_view.dart +++ b/lib/pages/receive_view/addresses/receiving_addresses_view.dart @@ -112,8 +112,9 @@ class _WalletAddressesViewState extends ConsumerState { .not() .typeEqualTo(AddressType.nonWallet) .sortByDerivationIndex() + .idProperty() .findAll(), - builder: (context, AsyncSnapshot> snapshot) { + builder: (context, AsyncSnapshot> snapshot) { if (snapshot.connectionState == ConnectionState.done && snapshot.data != null) { // listview @@ -124,7 +125,7 @@ class _WalletAddressesViewState extends ConsumerState { ), itemBuilder: (_, index) => AddressCard( walletId: widget.walletId, - address: snapshot.data![index], + addressId: snapshot.data![index], coin: coin, ), );