diff --git a/StickerSlack/Emoji/SlackResponse.swift b/StickerSlack/Emoji/SlackResponse.swift index 44dcb64..6ca7e8a 100644 --- a/StickerSlack/Emoji/SlackResponse.swift +++ b/StickerSlack/Emoji/SlackResponse.swift @@ -12,6 +12,14 @@ struct SlackResponse: Codable { var emoji: [String:String] func toEmojis() -> [Emoji] { + let initialMap = emoji.map { + Emoji(name: $0.key, url: $0.value) + } + initialMap.map { + var ret = $0 + ret.urlString = ret.urlString.prefix(6) == "alias:" ? initialMap.first(where: { $0.name == ret.name })!.url : ret.urlString + return ret + } return emoji.map { Emoji(name: $0.key, url: $0.value) } @@ -20,10 +28,13 @@ struct SlackResponse: Codable { struct Emoji: Codable, Hashable { var name: String - var url: String + var urlString: String + var url: URL { + return URL(string: urlString) ?? URL(string: "https://")! + } init(name: String, url: String) { self.name = name - self.url = url + self.urlString = url } } diff --git a/StickerSlack/Views/ContentView.swift b/StickerSlack/Views/ContentView.swift index 72059a6..353521e 100644 --- a/StickerSlack/Views/ContentView.swift +++ b/StickerSlack/Views/ContentView.swift @@ -16,7 +16,7 @@ struct ContentView: View { List { ForEach(hoarder.testBundle.toEmojis(), id: \.self) { emoji in Text(emoji.name) - Text(emoji.url) + AsyncImage(url: emoji.url) } } .tabItem {