mirror of
https://github.com/neon443/StickerSlack.git
synced 2026-03-11 13:26:17 +00:00
my new emojipreview was shit
added a delay thing which increases each time theres an error loading
This commit is contained in:
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user