add an image computed property to hostsymbol to return the Image so it safely returns an image from an sf symbol or an image from an ImageResource

This commit is contained in:
neon443
2025-07-03 11:34:04 +01:00
parent 200e1fd76c
commit e9dc468a97
3 changed files with 12 additions and 10 deletions

View File

@@ -18,6 +18,14 @@ enum HostSymbol: Codable, Equatable, Hashable, CaseIterable {
case genericServer
case genericServerVertical
var image: Image {
if isCustom {
return Image(self.sf)
} else {
return Image(systemName: self.sf)
}
}
var sf: String {
switch self {
case .desktopcomputer:

View File

@@ -51,7 +51,7 @@ struct KeyDetailView: View {
Button() {
hostsManager.set(keypair: keypair, onHost: host)
} label: {
Image(systemName: "plus")
host.symbol.image
.resizable().scaledToFit()
.foregroundStyle(.blue)
.frame(width: 20, height: 20)

View File

@@ -13,15 +13,9 @@ struct HostSymbolPreview: View {
var body: some View {
ZStack(alignment: .center) {
if symbol.isCustom {
Image(symbol.sf)
.resizable().scaledToFit()
.symbolRenderingMode(.monochrome)
} else {
Image(systemName: symbol.sf)
.resizable().scaledToFit()
.symbolRenderingMode(.monochrome)
}
symbol.image
.resizable().scaledToFit()
.symbolRenderingMode(.monochrome)
Text(label)
.font(.headline)
.offset(symbol.offset)