summaryrefslogtreecommitdiff
path: root/Sora/Data
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
parentfeat: Development commit (diff)
downloadsora-testing-fcf9ea89cf9190d4deb1e8e7223bf32a1f03b44f.tar.xz
sora-testing-fcf9ea89cf9190d4deb1e8e7223bf32a1f03b44f.zip
feat: Development commit
Diffstat (limited to 'Sora/Data')
-rw-r--r--Sora/Data/CollectionPickerOption.swift40
-rw-r--r--Sora/Data/Settings/SettingsFolder.swift8
2 files changed, 48 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" }
+ }
+ }
+}
diff --git a/Sora/Data/Settings/SettingsFolder.swift b/Sora/Data/Settings/SettingsFolder.swift
index 84543c1..2464770 100644
--- a/Sora/Data/Settings/SettingsFolder.swift
+++ b/Sora/Data/Settings/SettingsFolder.swift
@@ -5,6 +5,14 @@ struct SettingsFolder: Codable, Identifiable, Hashable {
var name: String
let createdAt: Date
+ var topLevelName: String? {
+ if name.contains("|") {
+ return String(name.split(separator: "|")[0]).trimmingCharacters(in: .whitespacesAndNewlines)
+ }
+
+ return nil
+ }
+
init(name: String, id: UUID = UUID()) {
createdAt = Date()
self.id = id