From 7e27375939d9ba8dcefe84e14cd8603f8d616be4 Mon Sep 17 00:00:00 2001 From: neon443 <69979447+neon443@users.noreply.github.com> Date: Mon, 3 Nov 2025 18:01:31 +0000 Subject: [PATCH] update emojpreview --- StickerSlack/Views/EmojiPreview.swift | 58 +++++++++++++-------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/StickerSlack/Views/EmojiPreview.swift b/StickerSlack/Views/EmojiPreview.swift index 90c35ef..f1240c7 100644 --- a/StickerSlack/Views/EmojiPreview.swift +++ b/StickerSlack/Views/EmojiPreview.swift @@ -18,40 +18,29 @@ struct EmojiPreview: View { VStack(alignment: .leading) { Text(emoji.name) Group { - if emoji.isLocal { - Image(uiImage: emoji.image ?? UIImage()) - .resizable().scaledToFit() - .border(.orange) - .overlay(alignment: .bottomLeading) { - Image(systemName: "arrow.down.circle.fill") - .resizable().scaledToFit() - .frame(width: 20, height: 20) - .symbolRenderingMode(.hierarchical) - .shadow(radius: 1) - } - } else { - AsyncImage(url: emoji.remoteImageURL) { phase in - if let image = phase.image { - image - .resizable().scaledToFit() - } else if phase.error != nil { - ZStack { - Image(systemName: "xmark.app.fill") + 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() - .padding() - .padding() - .symbolRenderingMode(.hierarchical) - .foregroundStyle(.red) - .onAppear { - id = UUID() - } + } else if phase.error != nil { + ImageErrorView() .onTapGesture { id = UUID() } + } else { + ProgressView() + .frame(maxWidth: .infinity, maxHeight: .infinity) } - } else { - ProgressView() - .frame(maxWidth: .infinity, maxHeight: .infinity) } } } @@ -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) + } +}