switched back to asynimage :cry

This commit is contained in:
neon443
2025-10-19 14:13:51 +01:00
parent 62ac3ea117
commit 5b61f6ecf4
3 changed files with 2 additions and 23 deletions

View File

@@ -21,9 +21,6 @@ struct Emoji: EmojiProtocol {
return URL(string: urlString) ?? URL(string: "https://")! return URL(string: urlString) ?? URL(string: "https://")!
} }
var image: Image { Image(uiImage: uiImage) }
private var uiImage: UIImage = UIImage()
init(from decoder: any Decoder) throws { init(from decoder: any Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self) let container = try decoder.container(keyedBy: CodingKeys.self)
self.init( self.init(
@@ -39,7 +36,6 @@ struct Emoji: EmojiProtocol {
) { ) {
self.name = name self.name = name
self.urlString = url self.urlString = url
self.uiImage = UIImage()
} }
enum CodingKeys: CodingKey { enum CodingKeys: CodingKey {
@@ -52,19 +48,5 @@ struct Emoji: EmojiProtocol {
try container.encode(self.name, forKey: .name) try container.encode(self.name, forKey: .name)
try container.encode(self.urlString, forKey: .urlString) 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)!
}
} }

View File

@@ -29,10 +29,7 @@ class EmojiHoarder: ObservableObject {
let data = try! Data(contentsOf: endpoint) let data = try! Data(contentsOf: endpoint)
let decoded: [SlackResponse] = try! JSONDecoder().decode([SlackResponse].self, from: data) let decoded: [SlackResponse] = try! JSONDecoder().decode([SlackResponse].self, from: data)
var emojis = decoded.prefix(100).map { Emoji(name: $0.name, url: $0.imageUrl) } var emojis = decoded.map { Emoji(name: $0.name, url: $0.imageUrl) }
for i in emojis.indices {
emojis[i].grabImageSync()
}
self.emojis = emojis self.emojis = emojis
// Task { // Task {
// for i in emojis.indices { // for i in emojis.indices {

View File

@@ -16,7 +16,7 @@ struct ContentView: View {
List { List {
ForEach(hoarder.emojis, id: \.self) { emoji in ForEach(hoarder.emojis, id: \.self) { emoji in
Text(emoji.name) Text(emoji.name)
emoji.image AsyncImage(url: emoji.url)
} }
} }
.tabItem { .tabItem {