Separate post and page view to files

This commit is contained in:
Christoph Hagen
2025-01-27 22:31:02 +01:00
parent 89062f153c
commit eaad0a4bff
7 changed files with 201 additions and 197 deletions

View File

@ -0,0 +1,65 @@
import SwiftUI
struct PostImageView: View {
@ObservedObject
var image: FileResource
var body: some View {
if let preview = image.imageToDisplay {
preview
.resizable()
.aspectRatio(contentMode: .fill)
.frame(maxWidth: 300, maxHeight: 200)
.cornerRadius(8)
} else if image.type.isImage {
VStack {
Image(systemSymbol: .exclamationmarkTriangle)
.resizable()
.aspectRatio(contentMode: .fit)
.frame(height: 100)
Text(image.id)
.font(.title)
Text("Failed to load image")
.font(.body)
}
.frame(width: 300, height: 200)
.background(Color.gray)
.cornerRadius(8)
} else if image.type.isVideo {
VStack {
Image(systemSymbol: .film)
.resizable()
.aspectRatio(contentMode: .fit)
.frame(height: 100)
Text(image.id)
.font(.title)
Button("Generate preview") {
generateVideoPreview(image)
}
.font(.body)
}
.frame(width: 300, height: 200)
.background(Color.gray)
.cornerRadius(8)
} else {
VStack {
Image(systemSymbol: .exclamationmarkTriangle)
.resizable()
.aspectRatio(contentMode: .fit)
.frame(height: 100)
Text(image.id)
.font(.title)
Text("Invalid media type")
.font(.body)
}
.frame(width: 300, height: 200)
.background(Color.gray)
.cornerRadius(8)
}
}
private func generateVideoPreview(_ image: FileResource) {
image.createVideoThumbnail()
}
}