mirror of
https://github.com/Such-Software/hash-wallet.git
synced 2026-10-31 06:58:42 +01:00
Upstream reformatted its whole tree in 16ddc0837. Matching it removes
formatting from the conflict surface of this and every later sync.
57 lines
1.4 KiB
Dart
57 lines
1.4 KiB
Dart
import 'package:cw_core/utils/socket_health_logger.dart';
|
|
import 'package:mobx/mobx.dart';
|
|
|
|
part 'socket_health_logs_view_model.g.dart';
|
|
|
|
class SocketHealthLogsViewModel = SocketHealthLogsViewModelBase with _$SocketHealthLogsViewModel;
|
|
|
|
abstract class SocketHealthLogsViewModelBase with Store {
|
|
@observable
|
|
bool isLoading = false;
|
|
|
|
@observable
|
|
String? error;
|
|
|
|
@observable
|
|
ObservableList<SocketHealthLogEntry> logs = ObservableList<SocketHealthLogEntry>();
|
|
|
|
@computed
|
|
int get totalLogs => logs.length;
|
|
|
|
@computed
|
|
int get unhealthyLogs => logs.where((log) => log.isHealthy == false).length;
|
|
|
|
@computed
|
|
int get healthyLogs => totalLogs - unhealthyLogs;
|
|
|
|
String getLogsAsText() {
|
|
if (logs.isEmpty) return 'No logs available';
|
|
|
|
final buffer = StringBuffer();
|
|
buffer.writeln('Socket Health Logs');
|
|
buffer.writeln('Generated: ${DateTime.now().toIso8601String()}');
|
|
buffer.writeln('Total logs: $totalLogs');
|
|
buffer.writeln('Unhealthy logs: $unhealthyLogs');
|
|
buffer.writeln('Healthy logs: $healthyLogs');
|
|
buffer.writeln('');
|
|
|
|
for (final log in logs) {
|
|
buffer.writeln(log.toLogString());
|
|
}
|
|
|
|
return buffer.toString();
|
|
}
|
|
|
|
@action
|
|
void loadLogs() {
|
|
this.logs.clear();
|
|
this.logs.addAll(SocketHealthLogger.logs);
|
|
}
|
|
|
|
@action
|
|
void clearLogs() {
|
|
SocketHealthLogger().clearLogs();
|
|
this.logs.clear();
|
|
}
|
|
}
|