ChWebsiteApp/CHDataManagement/Views/Files/FileContentView.swift
2024-12-09 12:18:55 +01:00

71 lines
1.9 KiB
Swift

import SwiftUI
import SFSafeSymbols
struct FileContentView: View {
private let iconSize: CGFloat = 150
@ObservedObject
var file: FileResource
@State
private var fileContent: String = ""
var body: some View {
VStack {
switch file.type {
case .image:
file.imageToDisplay
.resizable()
.aspectRatio(contentMode: .fit)
case .model:
VStack {
Image(systemSymbol: .cubeTransparent)
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: iconSize)
Text("No preview available")
.font(.title)
}
.foregroundStyle(.secondary)
case .text, .code:
TextFileContentView(file: file)
.id(file.id)
case .video:
VStack {
Image(systemSymbol: .film)
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: iconSize)
Text("No preview available")
.font(.title)
}
.foregroundStyle(.secondary)
case .other:
VStack {
Image(systemSymbol: .docQuestionmark)
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: iconSize)
Text("No preview available")
.font(.title)
}
.foregroundStyle(.secondary)
}
}.padding()
}
}
extension FileContentView: MainContentView {
init(item: FileResource) {
self.file = item
}
static let itemDescription = "a file"
}
#Preview {
FileContentView(file: .mock)
}