update emojpreview

This commit is contained in:
neon443
2025-11-03 18:01:31 +00:00
parent caedb16ef5
commit 7e27375939

View File

@@ -18,16 +18,14 @@ struct EmojiPreview: View {
VStack(alignment: .leading) { VStack(alignment: .leading) {
Text(emoji.name) Text(emoji.name)
Group { Group {
if emoji.isLocal { AsyncImage(url: emoji.localImageURL) { phase in
Image(uiImage: emoji.image ?? UIImage()) if let image = phase.image {
image
.resizable().scaledToFit() .resizable().scaledToFit()
.border(.orange) } else if phase.error != nil {
.overlay(alignment: .bottomLeading) { ImageErrorView()
Image(systemName: "arrow.down.circle.fill") .onTapGesture {
.resizable().scaledToFit() id = UUID()
.frame(width: 20, height: 20)
.symbolRenderingMode(.hierarchical)
.shadow(radius: 1)
} }
} else { } else {
AsyncImage(url: emoji.remoteImageURL) { phase in AsyncImage(url: emoji.remoteImageURL) { phase in
@@ -35,20 +33,10 @@ struct EmojiPreview: View {
image image
.resizable().scaledToFit() .resizable().scaledToFit()
} else if phase.error != nil { } else if phase.error != nil {
ZStack { ImageErrorView()
Image(systemName: "xmark.app.fill")
.resizable().scaledToFit()
.padding()
.padding()
.symbolRenderingMode(.hierarchical)
.foregroundStyle(.red)
.onAppear {
id = UUID()
}
.onTapGesture { .onTapGesture {
id = UUID() id = UUID()
} }
}
} else { } else {
ProgressView() ProgressView()
.frame(maxWidth: .infinity, maxHeight: .infinity) .frame(maxWidth: .infinity, maxHeight: .infinity)
@@ -56,6 +44,7 @@ struct EmojiPreview: View {
} }
} }
} }
}
.id(id) .id(id)
} }
} }
@@ -70,3 +59,14 @@ struct EmojiPreview: View {
) )
) )
} }
struct ImageErrorView: View {
var body: some View {
Image(systemName: "xmark.app.fill")
.resizable().scaledToFit()
.padding()
.padding()
.symbolRenderingMode(.hierarchical)
.foregroundStyle(.red)
}
}