Files
ChWebsiteApp/CHDataManagement/Views/Generic/FilesPropertyView.swift
2025-08-31 16:27:32 +02:00

54 lines
1.3 KiB
Swift

import SwiftUI
struct FilesPropertyView: View {
let title: LocalizedStringKey
let footer: LocalizedStringKey
@Binding
var selectedFiles: [FileResource]
let allowedType: FileTypeCategory?
init(
title: LocalizedStringKey,
footer: LocalizedStringKey,
selectedFiles: Binding<[FileResource]>,
allowedType: FileTypeCategory? = nil
) {
self.title = title
self.footer = footer
self._selectedFiles = selectedFiles
self.allowedType = allowedType
}
private var selectedText: String {
guard !selectedFiles.isEmpty else {
return "No file selected"
}
guard selectedFiles.count == 1 else {
return "\(selectedFiles.count) files selected"
}
return selectedFiles[0].identifier
}
@State
private var showFileSelectionSheet = false
var body: some View {
GenericPropertyView(title: title, footer: footer) {
HStack {
Text(selectedText)
Spacer()
Button("Select") {
showFileSelectionSheet = true
}
}
}
.sheet(isPresented: $showFileSelectionSheet) {
MultiFileSelectionView(selectedFiles: $selectedFiles, allowedType: allowedType)
}
}
}