fix(bugs): prevent redundant API calls on PieChart interaction in DeviceManagerPage

This commit is contained in:
anhtunz
2025-01-13 10:11:26 +07:00
parent a17831d0ac
commit 408c92d843
5 changed files with 44 additions and 52 deletions

View File

@@ -30,6 +30,7 @@ class _DevicesManagerScreenState extends State<DevicesManagerScreen> {
List<Device> devices = [];
Timer? getAllDevicesTimer;
List<Widget> tags = [];
int tagIndex = -2;
@override
void initState() {
super.initState();
@@ -38,7 +39,7 @@ class _DevicesManagerScreenState extends State<DevicesManagerScreen> {
const duration = Duration(seconds: 10);
getAllDevicesTimer = Timer.periodic(
duration,
(Timer t) => devicesManagerBloc.getDeviceByState(-2),
(Timer t) => devicesManagerBloc.getDeviceByState(tagIndex),
);
}
@@ -65,7 +66,10 @@ class _DevicesManagerScreenState extends State<DevicesManagerScreen> {
.getDeviceByState(tagSnapshot.data?[0] ?? -2);
return const Center(child: CircularProgressIndicator());
} else {
if (tagSnapshot.data!.isNotEmpty) {}
if (tagSnapshot.data!.isNotEmpty) {
tagIndex = tagSnapshot.data![0];
devicesManagerBloc.sinkTagStates.add([tagIndex]);
}
return SingleChildScrollView(
child: Column(
children: [
@@ -154,7 +158,7 @@ class _DevicesManagerScreenState extends State<DevicesManagerScreen> {
// log('Chuyen page: $pageIndex');
},
rowsPerPage:
(allDeviceSnapshot.data?.length ?? 0) < 6
(allDeviceSnapshot.data?.length ?? 1) < 6
? (allDeviceSnapshot.data?.length ??
0)
: 5,