Simplify images, tag overview

This commit is contained in:
Christoph Hagen
2025-01-04 08:44:26 +01:00
parent 4d4275e072
commit 22e7d9a05a
49 changed files with 603 additions and 509 deletions

View File

@ -11,12 +11,12 @@ struct MultiFileSelectionView: View {
@Binding
private var selectedFiles: [FileResource]
let allowedType: FileFilterType?
let allowedType: FileTypeCategory?
let insertSorted: Bool
@State
private var selectedFileType: FileFilterType
private var selectedFileType: FileTypeCategory?
@State
private var searchString = ""
@ -24,16 +24,19 @@ struct MultiFileSelectionView: View {
@State
private var newSelection: [FileResource]
init(selectedFiles: Binding<[FileResource]>, allowedType: FileFilterType? = nil, insertSorted: Bool = false) {
init(selectedFiles: Binding<[FileResource]>, allowedType: FileTypeCategory? = nil, insertSorted: Bool = false) {
self._selectedFiles = selectedFiles
self.newSelection = selectedFiles.wrappedValue
self.allowedType = allowedType
self.selectedFileType = allowedType ?? .images
self.selectedFileType = allowedType ?? .image
self.insertSorted = insertSorted
}
private var filesBySelectedType: [FileResource] {
content.files.filter { selectedFileType.matches($0.type) }
guard let selectedFileType else {
return content.files
}
return content.files.filter { selectedFileType == $0.type.category }
}
private var filteredFiles: [FileResource] {
@ -75,7 +78,9 @@ struct MultiFileSelectionView: View {
}
VStack {
Picker("", selection: $selectedFileType) {
ForEach(FileFilterType.allCases) { type in
let all: FileTypeCategory? = nil
Text("All").tag(all)
ForEach(FileTypeCategory.allCases) { type in
Text(type.text).tag(type)
}
}