🐛 Fix API requesting on watchOS app

This commit is contained in:
2025-10-28 23:20:52 +08:00
parent 9697def808
commit 0106c08891

View File

@@ -1,4 +1,3 @@
// //
// ContentView.swift // ContentView.swift
// WatchRunner Watch App // WatchRunner Watch App
@@ -113,10 +112,6 @@ struct SnActivity: Codable, Identifiable {
let type: String let type: String
let data: ActivityData? let data: ActivityData?
let createdAt: Date let createdAt: Date
enum CodingKeys: String, CodingKey {
case id, type, data, createdAt
}
} }
enum ActivityData: Codable { enum ActivityData: Codable {
@@ -239,6 +234,7 @@ class NetworkService {
let decoder = JSONDecoder() let decoder = JSONDecoder()
decoder.dateDecodingStrategy = .iso8601 decoder.dateDecodingStrategy = .iso8601
decoder.keyDecodingStrategy = .convertFromSnakeCase
return try decoder.decode([SnActivity].self, from: data) return try decoder.decode([SnActivity].self, from: data)
} }
@@ -269,6 +265,7 @@ class ActivityViewModel: ObservableObject {
self.activities = fetchedActivities self.activities = fetchedActivities
} catch { } catch {
self.errorMessage = error.localizedDescription self.errorMessage = error.localizedDescription
print("[watchOS] fetchActivities failed with error: \(error)")
} }
isLoading = false isLoading = false
@@ -291,11 +288,15 @@ struct ActivityListView: View {
ProgressView() ProgressView()
} else if let errorMessage = viewModel.errorMessage { } else if let errorMessage = viewModel.errorMessage {
VStack { VStack {
Text("Error") Text("Error fetching data")
.font(.headline) .font(.headline)
Text(errorMessage) Text(errorMessage)
.font(.caption) .font(.caption)
.lineLimit(nil)
} }
.padding()
} else if viewModel.activities.isEmpty {
Text("No activities found.")
} else { } else {
List(viewModel.activities) { activity in List(viewModel.activities) { activity in
switch activity.type { switch activity.type {
@@ -410,4 +411,4 @@ struct ContentView: View {
#Preview { #Preview {
ContentView() ContentView()
} }