Lazy-load tunnel logs in Diagnostics

Fixes #743
This commit is contained in:
Davide 2024-10-20 01:54:46 +02:00
parent ae9e200618
commit 25470e61e5
No known key found for this signature in database
GPG Key ID: A48836171C759F5E
1 changed files with 12 additions and 10 deletions

View File

@ -50,14 +50,16 @@ struct DiagnosticsView: View {
@AppStorage(AppPreference.logsPrivateData.key, store: .appGroup) @AppStorage(AppPreference.logsPrivateData.key, store: .appGroup)
private var logsPrivateData = false private var logsPrivateData = false
var availableTunnelLogs: () -> [LogEntry] = { var availableTunnelLogs: () async -> [LogEntry] = {
PassepartoutConfiguration.shared.availableLogs(at: BundleConfiguration.urlForTunnelLog) await Task.detached {
.sorted { PassepartoutConfiguration.shared.availableLogs(at: BundleConfiguration.urlForTunnelLog)
$0.key > $1.key .sorted {
} $0.key > $1.key
.map { }
LogEntry(date: $0, url: $1) .map {
} LogEntry(date: $0, url: $1)
}
}.value
} }
@State @State
@ -81,8 +83,8 @@ struct DiagnosticsView: View {
reportIssueSection reportIssueSection
} }
} }
.onLoad { .task {
tunnelLogs = availableTunnelLogs() tunnelLogs = await availableTunnelLogs()
} }
.themeForm() .themeForm()
.navigationTitle(Strings.Views.Diagnostics.title) .navigationTitle(Strings.Views.Diagnostics.title)