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 @EnvironmentObject private var sparkleUpdater: SparkleUpdater
@Environment(\.colorScheme) private var colorScheme
@AppStorage("pingInterval") private var storedPingInterval: Int = 10 @AppStorage("pingInterval") private var storedPingInterval: Int = 10
@AppStorage("refreshInterval") private var storedRefreshInterval: Int = 60 @AppStorage("refreshInterval") private var storedRefreshInterval: Int = 60
@@ -143,12 +144,39 @@ struct PreferencesView: View {
} }
private func backgroundColor(for tab: Tab) -> Color { private func backgroundColor(for tab: Tab) -> Color {
if selection == tab { if selection == tab {
return Color.accentColor return sidebarSelectionColor
} }
if hoveredTab == tab { 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 { struct ResourcesView: View {
@Binding var server: Server @Binding var server: Server
private var displayInfo: ServerInfo {
server.info ?? .placeholder
}
var body: some View { var body: some View {
GeometryReader { geometry in GeometryReader { geometry in
ScrollView { ScrollView {
@@ -25,40 +29,40 @@ struct ResourcesView: View {
Text("CPU Load") Text("CPU Load")
} value: { } value: {
LoadBarCell( LoadBarCell(
percent: (server.info?.load.percent)!, percent: displayInfo.load.percent,
load1: (server.info?.load.minute1)!, load1: displayInfo.load.minute1,
load5: (server.info?.load.minute5)!, load5: displayInfo.load.minute5,
load15: (server.info?.load.minute15)! load15: displayInfo.load.minute15
) )
} }
TableRowView { TableRowView {
Text("Memory") Text("Memory")
} value: { } value: {
UsageBarCell( UsageBarCell(
free: (server.info?.memory.free)!, free: displayInfo.memory.free,
used: (server.info?.memory.used)!, used: displayInfo.memory.used,
total: (server.info?.memory.total)!, total: displayInfo.memory.total,
percent: (server.info?.memory.percent)! percent: displayInfo.memory.percent
) )
} }
TableRowView { TableRowView {
Text("Swap") Text("Swap")
} value: { } value: {
UsageBarCell( UsageBarCell(
free: (server.info?.swap.free)!, free: displayInfo.swap.free,
used: (server.info?.swap.used)!, used: displayInfo.swap.used,
total: (server.info?.swap.total)!, total: displayInfo.swap.total,
percent: (server.info?.swap.percent)! percent: displayInfo.swap.percent
) )
} }
TableRowView { TableRowView {
Text("SSD") Text("SSD")
} value: { } value: {
UsageBarCell( UsageBarCell(
free: (server.info?.diskSpace.free)!, free: displayInfo.diskSpace.free,
used: (server.info?.diskSpace.used)!, used: displayInfo.diskSpace.used,
total: (server.info?.diskSpace.total)!, total: displayInfo.diskSpace.total,
percent: (server.info?.diskSpace.percent)! percent: displayInfo.diskSpace.percent
) )
} }
} }