mirror of
https://github.com/yJason/ClashX-Dashboard.git
synced 2026-03-01 00:35:19 +08:00
init
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
//
|
||||
// LogsView.swift
|
||||
// ClashX Dashboard
|
||||
//
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct LogsView: View {
|
||||
|
||||
@EnvironmentObject var logStorage: ClashLogStorage
|
||||
|
||||
@State var searchString: String = ""
|
||||
|
||||
var logs: [ClashLogStorage.ClashLog] {
|
||||
let logs: [ClashLogStorage.ClashLog] = logStorage.logs.reversed()
|
||||
if searchString.isEmpty {
|
||||
return logs
|
||||
} else {
|
||||
return logs.filtered(searchString, for: ["log", "levelString"])
|
||||
}
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
Table(logs) {
|
||||
TableColumn("Date") {
|
||||
Text($0.date.formatted(
|
||||
Date.FormatStyle()
|
||||
.year(.twoDigits)
|
||||
.month(.twoDigits)
|
||||
.day(.twoDigits)
|
||||
.hour(.twoDigits(amPM: .omitted))
|
||||
.minute(.twoDigits)
|
||||
.second(.twoDigits)
|
||||
))
|
||||
.foregroundColor(.orange)
|
||||
.truncationMode(.head)
|
||||
}
|
||||
.width(min: 60, max: 130)
|
||||
TableColumn("Level") {
|
||||
Text("[\($0.level.rawValue)]")
|
||||
.foregroundColor($0.levelColor)
|
||||
}
|
||||
.width(min: 40, max: 65)
|
||||
TableColumn("", value: \.log)
|
||||
}
|
||||
.background(.white)
|
||||
.searchable(text: $searchString)
|
||||
}
|
||||
}
|
||||
|
||||
struct LogsView_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
LogsView()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user