Begin statistics creation
This commit is contained in:
53
CHDataManagement/Views/Generic/FilesPropertyView.swift
Normal file
53
CHDataManagement/Views/Generic/FilesPropertyView.swift
Normal file
@@ -0,0 +1,53 @@
|
||||
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)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user