Files
App/ios/WatchRunner Watch App/Views/ImageViewer.swift
2025-10-29 21:44:33 +08:00

35 lines
1.1 KiB
Swift

import SwiftUI
struct ImageViewer: View {
let imageUrl: URL
@EnvironmentObject var appState: AppState
@StateObject private var imageLoader = ImageLoader()
var body: some View {
Group {
if imageLoader.isLoading {
ProgressView()
} else if let image = imageLoader.image {
image
.resizable()
.aspectRatio(contentMode: .fit)
.frame(maxWidth: .infinity, maxHeight: .infinity)
.scaledToFit()
} else if let errorMessage = imageLoader.errorMessage {
Text("Failed to load image: \(errorMessage)")
.font(.caption)
.foregroundColor(.red)
} else {
Text("Failed to load image.")
}
}
.task(id: imageUrl) {
if let token = appState.token {
await imageLoader.loadImage(from: imageUrl, token: token)
}
}
.navigationTitle("Image")
.navigationBarTitleDisplayMode(.inline)
}
}