From d4cc465b81c13c164cd0ec6b1e1908b35aac6020 Mon Sep 17 00:00:00 2001 From: neon443 <69979447+neon443@users.noreply.github.com> Date: Mon, 3 Nov 2025 18:26:13 +0000 Subject: [PATCH] my new emojipreview was shit added a delay thing which increases each time theres an error loading --- StickerSlack/Views/EmojiPreview.swift | 50 +++++++++++++++------------ 1 file changed, 28 insertions(+), 22 deletions(-) diff --git a/StickerSlack/Views/EmojiPreview.swift b/StickerSlack/Views/EmojiPreview.swift index f1240c7..09caadc 100644 --- a/StickerSlack/Views/EmojiPreview.swift +++ b/StickerSlack/Views/EmojiPreview.swift @@ -13,34 +13,41 @@ struct EmojiPreview: View { @State var emoji: Emoji @State private var id: UUID = UUID() + @State private var delay: TimeInterval = 0 var body: some View { VStack(alignment: .leading) { Text(emoji.name) Group { - AsyncImage(url: emoji.localImageURL) { phase in - if let image = phase.image { - image - .resizable().scaledToFit() - } else if phase.error != nil { - ImageErrorView() - .onTapGesture { - id = UUID() - } - } else { - AsyncImage(url: emoji.remoteImageURL) { phase in - if let image = phase.image { - image - .resizable().scaledToFit() - } else if phase.error != nil { - ImageErrorView() - .onTapGesture { + if let image = emoji.image { + Image(uiImage: image) + .resizable().scaledToFit() + .border(.orange) + .overlay(alignment: .bottomLeading) { + Image(systemName: "arrow.down.circle.fill") + .foregroundStyle(.gray) + .shadow(radius: 1) + .symbolRenderingMode(.hierarchical) + } + } else { + AsyncImage(url: emoji.remoteImageURL) { phase in + if let image = phase.image { + image + .resizable().scaledToFit() + } else if phase.error != nil { + ImageErrorView() + .onTapGesture { + id = UUID() + } + .onAppear { + DispatchQueue.main.asyncAfter(deadline: .now()+delay) { id = UUID() + delay+=0.1 } - } else { - ProgressView() - .frame(maxWidth: .infinity, maxHeight: .infinity) - } + } + } else { + ProgressView() + .frame(maxWidth: .infinity, maxHeight: .infinity) } } } @@ -65,7 +72,6 @@ struct ImageErrorView: View { Image(systemName: "xmark.app.fill") .resizable().scaledToFit() .padding() - .padding() .symbolRenderingMode(.hierarchical) .foregroundStyle(.red) }