Ferrite-backup/Ferrite/Views/ComponentViews/Settings/SettingsLogView.swift
kingbri 20c55316b0 Kodi: Add multi-server support
Multiple servers can be added to Ferrite to playback from any Kodi
server that the user wants. This also adds the ability to have
friendly names which makes it easier to select what server to play on.

Each server shows the user whether it's online or not through Kodi's
JSONRPC ping method.

Signed-off-by: kingbri <bdashore3@proton.me>
2023-03-18 16:30:27 -04:00

67 lines
2 KiB
Swift

//
// SettingsLogView.swift
// Ferrite
//
// Created by Brian Dashore on 3/8/23.
//
import SwiftUI
struct SettingsLogView: View {
@EnvironmentObject var logManager: LoggingManager
var body: some View {
List {
ForEach($logManager.messageArray, id: \.self) { $log in
Text(log.toMessage())
.font(.caption)
.foregroundColor(.secondary)
.lineLimit(log.isExpanded ? nil : 5)
.onTapGesture {
log.isExpanded.toggle()
}
}
}
.listStyle(.plain)
.backport.alert(
isPresented: $logManager.showLogExportedAlert,
title: "Success",
message: "Log successfully exported in Ferrite's logs folder"
)
.navigationTitle("Logs")
.navigationBarTitleDisplayMode(.inline)
.toolbar {
ToolbarItem(placement: .navigationBarTrailing) {
Menu {
Button {
logManager.exportLogs()
} label: {
Label("Export", systemImage: "square.and.arrow.up")
}
if #available(iOS 15, *) {
Button(role: .destructive) {
logManager.messageArray = []
} label: {
Label("Clear session logs", systemImage: "trash")
}
} else {
Button {
logManager.messageArray = []
} label: {
Label("Clear session logs", systemImage: "trash")
}
}
} label: {
Image(systemName: "ellipsis")
}
}
}
}
}
struct SettingsLogView_Previews: PreviewProvider {
static var previews: some View {
SettingsLogView()
}
}