fix ab peers state

This commit is contained in:
csf
2022-10-08 16:53:03 +09:00
parent 9449e50ba4
commit ee1a7fb791
5 changed files with 50 additions and 40 deletions

View File

@@ -185,9 +185,10 @@ class _AddressBookState extends State<AddressBook> {
Expanded(
child: Align(
alignment: Alignment.topLeft,
child: AddressBookPeersView(
menuPadding: widget.menuPadding,
)),
child: Obx(() => AddressBookPeersView(
menuPadding: widget.menuPadding,
initPeers: gFFI.abModel.peers.value,
))),
)
],
));

View File

@@ -601,11 +601,11 @@ abstract class BasePeerCard extends StatelessWidget {
var name = peer.alias;
var controller = TextEditingController(text: name);
if (isAddressBook) {
final peer = gFFI.abModel.peers.firstWhere((p) => id == p['id']);
final peer = gFFI.abModel.peers.firstWhereOrNull((p) => id == p.id);
if (peer == null) {
// this should not happen
} else {
name = peer['alias'] ?? '';
name = peer.alias;
}
}
gFFI.dialogManager.show((setState, close) {
@@ -614,7 +614,7 @@ abstract class BasePeerCard extends StatelessWidget {
name = controller.text;
await bind.mainSetPeerOption(id: id, key: 'alias', value: name);
if (isAddressBook) {
gFFI.abModel.setPeerOption(id, 'alias', name);
gFFI.abModel.setPeerAlias(id, name);
await gFFI.abModel.updateAb();
}
if (isAddressBook) {

View File

@@ -265,7 +265,10 @@ class DiscoveredPeersView extends BasePeersView {
class AddressBookPeersView extends BasePeersView {
AddressBookPeersView(
{Key? key, EdgeInsets? menuPadding, ScrollController? scrollController})
{Key? key,
EdgeInsets? menuPadding,
ScrollController? scrollController,
required List<Peer> initPeers})
: super(
key: key,
name: 'address book peer',
@@ -277,16 +280,9 @@ class AddressBookPeersView extends BasePeersView {
peer: peer,
menuPadding: menuPadding,
))),
initPeers: _loadPeers(),
initPeers: initPeers,
);
static List<Peer> _loadPeers() {
debugPrint("_loadPeers : ${gFFI.abModel.peers.toString()}");
return gFFI.abModel.peers.map((e) {
return Peer.fromJson(e);
}).toList();
}
static bool _hitTag(List<dynamic> selectedTags, List<dynamic> idents) {
if (selectedTags.isEmpty) {
return true;