summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-06-09 16:22:08 -0700
committerFuwn <[email protected]>2025-06-09 16:22:08 -0700
commitc9727c504d72d45e9deb8bfe31bf646422be8936 (patch)
treeed745b39be0d6fe32b2ec57c467cbd6c4a618890
parentfeat: Development commit (diff)
downloadsora-testing-c9727c504d72d45e9deb8bfe31bf646422be8936.tar.xz
sora-testing-c9727c504d72d45e9deb8bfe31bf646422be8936.zip
feat: Development commit
-rw-r--r--Sora/Views/Generic/GenericListView.swift17
1 files changed, 16 insertions, 1 deletions
diff --git a/Sora/Views/Generic/GenericListView.swift b/Sora/Views/Generic/GenericListView.swift
index 6bd1e02..b324e5d 100644
--- a/Sora/Views/Generic/GenericListView.swift
+++ b/Sora/Views/Generic/GenericListView.swift
@@ -25,7 +25,17 @@ struct GenericListView<T: Identifiable & Hashable & GenericItem>: View {
let removeAllAction: () -> Void
var filteredItems: [T] {
items.filter { item in
- let matchesFolder = selectedFolder == nil || item.folder == selectedFolder
+ let matchesFolder: Bool = {
+ if selectedFolder == nil {
+ return true
+ }
+
+ if selectedFolder == uncategorisedUUID {
+ return item.folder == nil
+ }
+
+ return item.folder == selectedFolder
+ }()
let matchesSearch =
searchText.isEmpty
|| item.tags
@@ -36,6 +46,7 @@ struct GenericListView<T: Identifiable & Hashable & GenericItem>: View {
return matchesFolder && matchesSearch
}
}
+ private let uncategorisedUUID = UUID(uuidString: "00000000-0000-0000-0000-000000000000")!
var body: some View {
NavigationStack {
@@ -51,6 +62,10 @@ struct GenericListView<T: Identifiable & Hashable & GenericItem>: View {
Picker("Collection", selection: $selectedFolder) {
Text("All").tag(nil as UUID?)
+ if items.contains(where: { $0.folder == nil }) {
+ Text("Uncategorised").tag(uncategorisedUUID as UUID?)
+ }
+
ForEach(settings.folders, id: \.id) { folder in
Text(folder.name).tag(folder.id)
}