mirror of
https://github.com/neon443/ShhShell.git
synced 2026-03-11 13:26:16 +00:00
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:
@@ -18,6 +18,14 @@ enum HostSymbol: Codable, Equatable, Hashable, CaseIterable {
|
|||||||
case genericServer
|
case genericServer
|
||||||
case genericServerVertical
|
case genericServerVertical
|
||||||
|
|
||||||
|
var image: Image {
|
||||||
|
if isCustom {
|
||||||
|
return Image(self.sf)
|
||||||
|
} else {
|
||||||
|
return Image(systemName: self.sf)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var sf: String {
|
var sf: String {
|
||||||
switch self {
|
switch self {
|
||||||
case .desktopcomputer:
|
case .desktopcomputer:
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ struct KeyDetailView: View {
|
|||||||
Button() {
|
Button() {
|
||||||
hostsManager.set(keypair: keypair, onHost: host)
|
hostsManager.set(keypair: keypair, onHost: host)
|
||||||
} label: {
|
} label: {
|
||||||
Image(systemName: "plus")
|
host.symbol.image
|
||||||
.resizable().scaledToFit()
|
.resizable().scaledToFit()
|
||||||
.foregroundStyle(.blue)
|
.foregroundStyle(.blue)
|
||||||
.frame(width: 20, height: 20)
|
.frame(width: 20, height: 20)
|
||||||
|
|||||||
@@ -13,15 +13,9 @@ struct HostSymbolPreview: View {
|
|||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
ZStack(alignment: .center) {
|
ZStack(alignment: .center) {
|
||||||
if symbol.isCustom {
|
symbol.image
|
||||||
Image(symbol.sf)
|
|
||||||
.resizable().scaledToFit()
|
.resizable().scaledToFit()
|
||||||
.symbolRenderingMode(.monochrome)
|
.symbolRenderingMode(.monochrome)
|
||||||
} else {
|
|
||||||
Image(systemName: symbol.sf)
|
|
||||||
.resizable().scaledToFit()
|
|
||||||
.symbolRenderingMode(.monochrome)
|
|
||||||
}
|
|
||||||
Text(label)
|
Text(label)
|
||||||
.font(.headline)
|
.font(.headline)
|
||||||
.offset(symbol.offset)
|
.offset(symbol.offset)
|
||||||
|
|||||||
Reference in New Issue
Block a user