fix(ui): Fix some ui bugs in DetailDeviceScreen, HomeScreen, UnregisterDeviceDialog

This commit is contained in:
anhtunz
2025-02-17 13:51:12 +07:00
parent 16244d6768
commit 50d96541e7
6 changed files with 33 additions and 11 deletions

View File

@@ -1,12 +1,14 @@
// ignore_for_file: use_build_context_synchronously
import 'package:flutter/material.dart';
import '../../bloc/devices_manager_bloc.dart';
import '../../product/constant/enums/role_enums.dart';
import '../../product/services/api_services.dart';
import '../../product/services/language_services.dart';
import '../../product/utils/response_status_utils.dart';
handleDeleteDevice(BuildContext context, String thingID, String role) {
handleDeleteDevice(BuildContext context, DevicesManagerBloc devicesManagerBloc,
extID, String role) {
showDialog(
context: context,
builder: (dialogContext) {
@@ -26,9 +28,10 @@ handleDeleteDevice(BuildContext context, String thingID, String role) {
appLocalization(dialogContext).delete_button_content,
style: const TextStyle(color: Colors.red),
),
onPressed: () {
deleteOrUnregisterDevice(context, thingID, role);
Navigator.of(context).pop();
onPressed: () async {
await deleteOrUnregisterDevice(
context, devicesManagerBloc, extID, role);
Navigator.of(dialogContext).pop();
},
),
],
@@ -37,12 +40,12 @@ handleDeleteDevice(BuildContext context, String thingID, String role) {
);
}
deleteOrUnregisterDevice(
BuildContext context, String thingID, String role) async {
deleteOrUnregisterDevice(BuildContext context, DevicesManagerBloc devicesBloc,
String extID, String role) async {
APIServices apiServices = APIServices();
if (role == RoleEnums.USER.name) {
Map<String, dynamic> body = {
"thing_id": thingID,
"ext_id": extID,
};
int statusCode = await apiServices.unregisterDevice(body);
showSnackBarResponseByStatusCode(
@@ -50,12 +53,14 @@ deleteOrUnregisterDevice(
statusCode,
appLocalization(context).notification_delete_device_success,
appLocalization(context).notification_delete_device_failed);
devicesBloc.getDeviceByState(-2);
} else {
int statusCode = await apiServices.deleteDeviceByAdmin(thingID);
int statusCode = await apiServices.deleteDeviceByAdmin(extID);
showSnackBarResponseByStatusCode(
context,
statusCode,
appLocalization(context).notification_delete_device_success,
appLocalization(context).notification_delete_device_failed);
devicesBloc.getDeviceByState(-2);
}
}