buildContent method

  1. @override
Widget buildContent({
  1. required BuildContext context,
  2. required PageChangeCallback<ResetFaultsPage> setPage,
  3. required int deviceId,
})
override

Implementation

@override
Widget buildContent({
  required BuildContext context,
  required PageChangeCallback<ResetFaultsPage> setPage,
  required int deviceId,
}) {
  return ActionStatusIndicator<void>(
    action: () async {
      final resetFaults = context.read(resetFaultsProvider);
      await resetFaults(context: context, id: deviceId);
      if (context.mounted) {
        context.logEvent(
          'remote_fault_resets',
          parameters: {
            'reset_faults': 'remote_fault_resets_count',
            'target': 1,
          },
        );
      }
      const kResetFaultsDelay = Duration(seconds: 2);
      await Future.delayed(kResetFaultsDelay);

      if (!context.mounted) return;

      await fullRefreshEventLog(context, deviceId);

      // Refresh all devices to capture the potential change in state of
      // the current device.

      if (!context.mounted) return;

      final refreshDevices = context.read(fullRefreshCachedDevicesProvider);
      unawaited(refreshDevices(context));
    },
    onSuccess: (_) => setPage(const SuccessResetFaultsPage()),
    onError: (_, __) => setPage(const ErrorResetFaultsPage()),
  );
}