mirror of
https://github.com/neon443/StickerSlack.git
synced 2026-03-11 05:19:13 +00:00
switched back to asynimage :cry
This commit is contained in:
@@ -21,9 +21,6 @@ struct Emoji: EmojiProtocol {
|
||||
return URL(string: urlString) ?? URL(string: "https://")!
|
||||
}
|
||||
|
||||
var image: Image { Image(uiImage: uiImage) }
|
||||
private var uiImage: UIImage = UIImage()
|
||||
|
||||
init(from decoder: any Decoder) throws {
|
||||
let container = try decoder.container(keyedBy: CodingKeys.self)
|
||||
self.init(
|
||||
@@ -39,7 +36,6 @@ struct Emoji: EmojiProtocol {
|
||||
) {
|
||||
self.name = name
|
||||
self.urlString = url
|
||||
self.uiImage = UIImage()
|
||||
}
|
||||
|
||||
enum CodingKeys: CodingKey {
|
||||
@@ -52,19 +48,5 @@ struct Emoji: EmojiProtocol {
|
||||
try container.encode(self.name, forKey: .name)
|
||||
try container.encode(self.urlString, forKey: .urlString)
|
||||
}
|
||||
|
||||
func grabImage() async -> Emoji {
|
||||
let req = URLRequest(url: url, cachePolicy: .reloadRevalidatingCacheData, timeoutInterval: 10)
|
||||
guard let response = try? await URLSession.shared.data(for: req) else {
|
||||
return self
|
||||
}
|
||||
print(UIImage(data: response.0))
|
||||
return Emoji(name: name, url: urlString, image: UIImage(data: response.0)!)
|
||||
}
|
||||
|
||||
mutating func grabImageSync() {
|
||||
let data = try! Data(contentsOf: url)
|
||||
uiImage = UIImage(data: data)!
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -29,10 +29,7 @@ class EmojiHoarder: ObservableObject {
|
||||
|
||||
let data = try! Data(contentsOf: endpoint)
|
||||
let decoded: [SlackResponse] = try! JSONDecoder().decode([SlackResponse].self, from: data)
|
||||
var emojis = decoded.prefix(100).map { Emoji(name: $0.name, url: $0.imageUrl) }
|
||||
for i in emojis.indices {
|
||||
emojis[i].grabImageSync()
|
||||
}
|
||||
var emojis = decoded.map { Emoji(name: $0.name, url: $0.imageUrl) }
|
||||
self.emojis = emojis
|
||||
// Task {
|
||||
// for i in emojis.indices {
|
||||
|
||||
@@ -16,7 +16,7 @@ struct ContentView: View {
|
||||
List {
|
||||
ForEach(hoarder.emojis, id: \.self) { emoji in
|
||||
Text(emoji.name)
|
||||
emoji.image
|
||||
AsyncImage(url: emoji.url)
|
||||
}
|
||||
}
|
||||
.tabItem {
|
||||
|
||||
Reference in New Issue
Block a user