diff --git a/assets/icons/empty_records.svg b/assets/icons/empty_records.svg
new file mode 100644
index 00000000..662a3e47
--- /dev/null
+++ b/assets/icons/empty_records.svg
@@ -0,0 +1,15 @@
+
diff --git a/assets/icons/open_close_door.svg b/assets/icons/open_close_door.svg
new file mode 100644
index 00000000..d5aacdef
--- /dev/null
+++ b/assets/icons/open_close_door.svg
@@ -0,0 +1,24 @@
+
diff --git a/assets/icons/open_close_records.svg b/assets/icons/open_close_records.svg
new file mode 100644
index 00000000..9c5c585c
--- /dev/null
+++ b/assets/icons/open_close_records.svg
@@ -0,0 +1,19 @@
+
diff --git a/assets/icons/water_heater.svg b/assets/icons/water_heater.svg
new file mode 100644
index 00000000..aa58e3fc
--- /dev/null
+++ b/assets/icons/water_heater.svg
@@ -0,0 +1,22 @@
+
diff --git a/lib/pages/common/buttons/default_button.dart b/lib/pages/common/buttons/default_button.dart
index 5aa506f8..77eb9bd7 100644
--- a/lib/pages/common/buttons/default_button.dart
+++ b/lib/pages/common/buttons/default_button.dart
@@ -17,6 +17,7 @@ class DefaultButton extends StatelessWidget {
this.borderRadius,
this.height,
this.padding,
+ this.borderColor,
});
final void Function()? onPressed;
final Widget child;
@@ -31,6 +32,8 @@ class DefaultButton extends StatelessWidget {
final ButtonStyle? customButtonStyle;
final Color? backgroundColor;
final Color? foregroundColor;
+ final Color? borderColor;
+
@override
Widget build(BuildContext context) {
return ElevatedButton(
@@ -61,6 +64,7 @@ class DefaultButton extends StatelessWidget {
}),
shape: MaterialStateProperty.all(
RoundedRectangleBorder(
+ side: BorderSide(color: borderColor ?? Colors.transparent),
borderRadius: BorderRadius.circular(borderRadius ?? 20),
),
),
diff --git a/lib/pages/device_managment/ac/bloc/ac_bloc.dart b/lib/pages/device_managment/ac/bloc/ac_bloc.dart
index 54f36889..7c6ee628 100644
--- a/lib/pages/device_managment/ac/bloc/ac_bloc.dart
+++ b/lib/pages/device_managment/ac/bloc/ac_bloc.dart
@@ -18,6 +18,7 @@ class AcBloc extends Bloc {
on(_onFetchAcBatchStatus);
on(_onAcControl);
on(_onAcBatchControl);
+ on(_onFactoryReset);
}
FutureOr _onFetchAcStatus(
@@ -184,4 +185,22 @@ class AcBloc extends Bloc {
emit: emit,
);
}
+
+ FutureOr _onFactoryReset(
+ AcFactoryResetEvent event, Emitter emit) async {
+ emit(AcsLoadingState());
+ try {
+ final response = await DevicesManagementApi().factoryReset(
+ event.factoryResetModel,
+ event.deviceId,
+ );
+ if (!response) {
+ emit(const AcsFailedState(error: 'Failed'));
+ } else {
+ add(AcFetchDeviceStatusEvent(event.deviceId));
+ }
+ } catch (e) {
+ emit(AcsFailedState(error: e.toString()));
+ }
+ }
}
diff --git a/lib/pages/device_managment/ac/bloc/ac_event.dart b/lib/pages/device_managment/ac/bloc/ac_event.dart
index acb81d95..8d49df96 100644
--- a/lib/pages/device_managment/ac/bloc/ac_event.dart
+++ b/lib/pages/device_managment/ac/bloc/ac_event.dart
@@ -1,4 +1,5 @@
import 'package:equatable/equatable.dart';
+import 'package:syncrow_web/pages/device_managment/all_devices/models/factory_reset_model.dart';
sealed class AcsEvent extends Equatable {
const AcsEvent();
@@ -54,3 +55,16 @@ class AcBatchControlEvent extends AcsEvent {
@override
List