refact: Remote ID editor, only select text on focus (#10854)

Signed-off-by: fufesou <linlong1266@gmail.com>
This commit is contained in:
fufesou
2025-02-20 19:35:04 +08:00
committed by GitHub
parent 8b9a7a3506
commit f631c1c28d
3 changed files with 27 additions and 29 deletions

View File

@@ -8,13 +8,16 @@ import 'package:flutter_hbb/common/widgets/peer_card.dart';
class AllPeersLoader {
List<Peer> peers = [];
bool isPeersLoading = false;
bool isPeersLoaded = false;
bool _isPeersLoading = false;
bool _isPeersLoaded = false;
final String _listenerKey = 'AllPeersLoader';
late void Function(VoidCallback) setState;
bool get needLoad => !_isPeersLoaded && !_isPeersLoading;
bool get isPeersLoaded => _isPeersLoaded;
AllPeersLoader();
void init(void Function(VoidCallback) setState) {
@@ -33,10 +36,10 @@ class AllPeersLoader {
}
Future<void> getAllPeers() async {
if (isPeersLoaded || isPeersLoading) {
if (!needLoad) {
return;
}
isPeersLoading = true;
_isPeersLoading = true;
if (gFFI.recentPeersModel.peers.isEmpty) {
bind.mainLoadRecentPeers();
@@ -96,8 +99,8 @@ class AllPeersLoader {
peers = parsedPeers;
setState(() {
isPeersLoading = false;
isPeersLoaded = true;
_isPeersLoading = false;
_isPeersLoaded = true;
});
}
}