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