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/CollectionPickerOption.swift | |
| parent | feat: Development commit (diff) | |
| download | sora-testing-fcf9ea89cf9190d4deb1e8e7223bf32a1f03b44f.tar.xz sora-testing-fcf9ea89cf9190d4deb1e8e7223bf32a1f03b44f.zip | |
feat: Development commit
Diffstat (limited to 'Sora/Data/CollectionPickerOption.swift')
| -rw-r--r-- | Sora/Data/CollectionPickerOption.swift | 40 |
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" } + } + } +} |