2025-01-09 13:27:38 +01:00

69 lines
1.8 KiB
Swift

import SwiftUI
import SFSafeSymbols
struct FileToAddView: View {
@ObservedObject
var file: FileToAdd
let delete: (FileToAdd) -> Void
var symbol: SFSymbol {
if file.idAlreadyExists {
return .docOnDoc
}
if file.isSelected {
return .checkmarkCircleFill
}
return .circle
}
var color: Color {
if file.idAlreadyExists {
return .red
}
if file.isSelected {
return .blue
}
return .gray
}
var body: some View {
VStack(alignment: .leading) {
HStack {
Image(systemSymbol: symbol)
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 20, height: 20)
.foregroundStyle(color)
.onTapGesture {
if !file.idAlreadyExists {
file.isSelected.toggle()
}
}
Image(systemSymbol: .trashCircleFill)
.resizable()
.frame(width: 20, height: 20)
.foregroundStyle(.red)
.onTapGesture {
delete(file)
}
TextField("", text: $file.uniqueId)
.textFieldStyle(.roundedBorder)
.frame(maxWidth: 200)
}
Text(file.url?.path() ?? "Placeholder file")
.foregroundStyle(.secondary)
}
}
}
#Preview {
List {
FileToAddView(file: .init(content: .mock, url: URL(fileURLWithPath: "/path/to/file.swift")), delete: { _ in })
FileToAddView(file: .init(content: .mock, url: URL(fileURLWithPath: "/path/to/file2.swift")), delete: { _ in })
}
}