my new emojipreview was shit

added a delay thing which increases each time theres an error loading
This commit is contained in:
neon443
2025-11-03 18:26:13 +00:00
parent 4b1776c209
commit d4cc465b81

View File

@@ -13,34 +13,41 @@ struct EmojiPreview: View {
@State var emoji: Emoji @State var emoji: Emoji
@State private var id: UUID = UUID() @State private var id: UUID = UUID()
@State private var delay: TimeInterval = 0
var body: some View { var body: some View {
VStack(alignment: .leading) { VStack(alignment: .leading) {
Text(emoji.name) Text(emoji.name)
Group { Group {
AsyncImage(url: emoji.localImageURL) { phase in if let image = emoji.image {
if let image = phase.image { Image(uiImage: image)
image .resizable().scaledToFit()
.resizable().scaledToFit() .border(.orange)
} else if phase.error != nil { .overlay(alignment: .bottomLeading) {
ImageErrorView() Image(systemName: "arrow.down.circle.fill")
.onTapGesture { .foregroundStyle(.gray)
id = UUID() .shadow(radius: 1)
} .symbolRenderingMode(.hierarchical)
} else { }
AsyncImage(url: emoji.remoteImageURL) { phase in } else {
if let image = phase.image { AsyncImage(url: emoji.remoteImageURL) { phase in
image if let image = phase.image {
.resizable().scaledToFit() image
} else if phase.error != nil { .resizable().scaledToFit()
ImageErrorView() } else if phase.error != nil {
.onTapGesture { ImageErrorView()
.onTapGesture {
id = UUID()
}
.onAppear {
DispatchQueue.main.asyncAfter(deadline: .now()+delay) {
id = UUID() id = UUID()
delay+=0.1
} }
} else { }
ProgressView() } else {
.frame(maxWidth: .infinity, maxHeight: .infinity) ProgressView()
} .frame(maxWidth: .infinity, maxHeight: .infinity)
} }
} }
} }
@@ -65,7 +72,6 @@ struct ImageErrorView: View {
Image(systemName: "xmark.app.fill") Image(systemName: "xmark.app.fill")
.resizable().scaledToFit() .resizable().scaledToFit()
.padding() .padding()
.padding()
.symbolRenderingMode(.hierarchical) .symbolRenderingMode(.hierarchical)
.foregroundStyle(.red) .foregroundStyle(.red)
} }