fixed color crash

This commit is contained in:
2026-04-19 11:33:15 +02:00
parent c8d3289a9b
commit 9413c23cc5
2 changed files with 51 additions and 19 deletions

View File

@@ -23,6 +23,7 @@ struct PreferencesView: View {
}
}
@EnvironmentObject private var sparkleUpdater: SparkleUpdater
@Environment(\.colorScheme) private var colorScheme
@AppStorage("pingInterval") private var storedPingInterval: Int = 10
@AppStorage("refreshInterval") private var storedRefreshInterval: Int = 60
@@ -143,12 +144,39 @@ struct PreferencesView: View {
}
private func backgroundColor(for tab: Tab) -> Color {
if selection == tab {
return Color.accentColor
return sidebarSelectionColor
}
if hoveredTab == tab {
return Color.accentColor.opacity(0.2)
return sidebarHoverColor
}
return sidebarBaseColor
}
private var sidebarSelectionColor: Color {
switch colorScheme {
case .dark:
return Color(red: 0.22, green: 0.45, blue: 0.88)
default:
return Color(red: 0.10, green: 0.39, blue: 0.90)
}
}
private var sidebarHoverColor: Color {
switch colorScheme {
case .dark:
return Color(red: 0.20, green: 0.22, blue: 0.27)
default:
return Color(red: 0.87, green: 0.91, blue: 0.98)
}
}
private var sidebarBaseColor: Color {
switch colorScheme {
case .dark:
return Color(red: 0.15, green: 0.16, blue: 0.19)
default:
return Color(red: 0.96, green: 0.97, blue: 0.99)
}
return Color.accentColor.opacity(0.08)
}
}

View File

@@ -17,6 +17,10 @@ import SwiftUI
struct ResourcesView: View {
@Binding var server: Server
private var displayInfo: ServerInfo {
server.info ?? .placeholder
}
var body: some View {
GeometryReader { geometry in
ScrollView {
@@ -25,40 +29,40 @@ struct ResourcesView: View {
Text("CPU Load")
} value: {
LoadBarCell(
percent: (server.info?.load.percent)!,
load1: (server.info?.load.minute1)!,
load5: (server.info?.load.minute5)!,
load15: (server.info?.load.minute15)!
percent: displayInfo.load.percent,
load1: displayInfo.load.minute1,
load5: displayInfo.load.minute5,
load15: displayInfo.load.minute15
)
}
TableRowView {
Text("Memory")
} value: {
UsageBarCell(
free: (server.info?.memory.free)!,
used: (server.info?.memory.used)!,
total: (server.info?.memory.total)!,
percent: (server.info?.memory.percent)!
free: displayInfo.memory.free,
used: displayInfo.memory.used,
total: displayInfo.memory.total,
percent: displayInfo.memory.percent
)
}
TableRowView {
Text("Swap")
} value: {
UsageBarCell(
free: (server.info?.swap.free)!,
used: (server.info?.swap.used)!,
total: (server.info?.swap.total)!,
percent: (server.info?.swap.percent)!
free: displayInfo.swap.free,
used: displayInfo.swap.used,
total: displayInfo.swap.total,
percent: displayInfo.swap.percent
)
}
TableRowView {
Text("SSD")
} value: {
UsageBarCell(
free: (server.info?.diskSpace.free)!,
used: (server.info?.diskSpace.used)!,
total: (server.info?.diskSpace.total)!,
percent: (server.info?.diskSpace.percent)!
free: displayInfo.diskSpace.free,
used: displayInfo.diskSpace.used,
total: displayInfo.diskSpace.total,
percent: displayInfo.diskSpace.percent
)
}
}