summaryrefslogtreecommitdiff
path: root/Sora/Data/CollectionPickerOption.swift
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-07-05 06:36:16 -0700
committerFuwn <[email protected]>2025-07-05 06:36:16 -0700
commitfcf9ea89cf9190d4deb1e8e7223bf32a1f03b44f (patch)
treecaf89e739b6ce730eb2ff0f0ef060c00cb4f15e9 /Sora/Data/CollectionPickerOption.swift
parentfeat: Development commit (diff)
downloadsora-testing-fcf9ea89cf9190d4deb1e8e7223bf32a1f03b44f.tar.xz
sora-testing-fcf9ea89cf9190d4deb1e8e7223bf32a1f03b44f.zip
feat: Development commit
Diffstat (limited to 'Sora/Data/CollectionPickerOption.swift')
-rw-r--r--Sora/Data/CollectionPickerOption.swift40
1 files changed, 40 insertions, 0 deletions
diff --git a/Sora/Data/CollectionPickerOption.swift b/Sora/Data/CollectionPickerOption.swift
new file mode 100644
index 0000000..442ebdc
--- /dev/null
+++ b/Sora/Data/CollectionPickerOption.swift
@@ -0,0 +1,40 @@
+import Foundation
+
+enum CollectionPickerOption: Identifiable, Hashable {
+ case all
+ case folder(UUID)
+ case topLevel(String)
+ case uncategorized
+
+ var id: String {
+ switch self {
+ case .all:
+ return "all"
+
+ case .folder(let id):
+ return id.uuidString
+
+ case .topLevel(let name):
+ return name
+
+ case .uncategorized:
+ return "uncategorized"
+ }
+ }
+
+ var name: (_ settings: SettingsManager) -> String {
+ switch self {
+ case .all:
+ return { _ in "All" }
+
+ case .folder(let id):
+ return { settings in settings.folderName(forID: id) ?? "Unknown Folder" }
+
+ case .topLevel(let name):
+ return { _ in name }
+
+ case .uncategorized:
+ return { _ in "Uncategorised" }
+ }
+ }
+}