implement testdata!

got a list of emojis and urls
reanmed slackemojiresponse to emoji
This commit is contained in:
neon443
2025-10-16 19:22:37 +01:00
parent 8e36082490
commit c5afd89222
3 changed files with 35 additions and 8 deletions

View File

@@ -11,14 +11,14 @@ struct SlackResponse: Codable {
var ok: Bool var ok: Bool
var emoji: [String:String] var emoji: [String:String]
func toEmojiResponse() -> [SlackEmojiResponse] { func toEmojis() -> [Emoji] {
return emoji.map { return emoji.map {
SlackEmojiResponse(name: $0.key, url: $0.value) Emoji(name: $0.key, url: $0.value)
} }
} }
} }
struct SlackEmojiResponse: Codable { struct Emoji: Codable, Hashable {
var name: String var name: String
var url: String var url: String

View File

@@ -12,4 +12,22 @@ import Combine
class EmojiHoarder: ObservableObject { class EmojiHoarder: ObservableObject {
private let endpoint: URL = URL(string: "https://slack.com/api/emoji.list")! private let endpoint: URL = URL(string: "https://slack.com/api/emoji.list")!
@Published var kys = "" @Published var kys = ""
@Published var testBundle: SlackResponse
init() {
self.kys = ""
guard let testURL = Bundle.main.url(forResource: "testData", withExtension: "json") else {
fatalError("")
}
guard let data = try? Data(contentsOf: testURL) else {
self.testBundle = SlackResponse(ok: false, emoji: [:])
return
}
guard let decoded = try? JSONDecoder().decode(SlackResponse.self, from: data) else {
fatalError("couldnt decode :sob:")
}
self.testBundle = decoded
}
} }

View File

@@ -8,16 +8,25 @@
import SwiftUI import SwiftUI
struct ContentView: View { struct ContentView: View {
var body: some View { @StateObject var hoarder: EmojiHoarder = EmojiHoarder()
TabView {
Text("hi") var body: some View {
NavigationStack {
TabView {
List {
ForEach(hoarder.testBundle.toEmojis(), id: \.self) { emoji in
Text(emoji.name)
Text(emoji.url)
}
}
.tabItem { .tabItem {
Label("home", systemImage: "house") Label("home", systemImage: "house")
} }
}
} }
} }
} }
#Preview { #Preview {
ContentView() ContentView()
} }