diff options
| author | Fuwn <[email protected]> | 2025-07-05 06:36:16 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-07-05 06:36:16 -0700 |
| commit | fcf9ea89cf9190d4deb1e8e7223bf32a1f03b44f (patch) | |
| tree | caf89e739b6ce730eb2ff0f0ef060c00cb4f15e9 /Sora/Data | |
| parent | feat: Development commit (diff) | |
| download | sora-testing-fcf9ea89cf9190d4deb1e8e7223bf32a1f03b44f.tar.xz sora-testing-fcf9ea89cf9190d4deb1e8e7223bf32a1f03b44f.zip | |
feat: Development commit
Diffstat (limited to 'Sora/Data')
| -rw-r--r-- | Sora/Data/CollectionPickerOption.swift | 40 | ||||
| -rw-r--r-- | Sora/Data/Settings/SettingsFolder.swift | 8 |
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 |