diff options
| author | Fuwn <[email protected]> | 2025-06-09 05:45:45 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-06-09 05:45:45 -0700 |
| commit | ebe4203869222a07a0bdc9521b42cce6b13f1f1b (patch) | |
| tree | 35083595a16c23cb550d95a56f925eeafba90174 /Sora/Data/Settings/SettingsManager.swift | |
| parent | feat: Development commit (diff) | |
| download | sora-testing-ebe4203869222a07a0bdc9521b42cce6b13f1f1b.tar.xz sora-testing-ebe4203869222a07a0bdc9521b42cce6b13f1f1b.zip | |
feat: Development commit
Diffstat (limited to 'Sora/Data/Settings/SettingsManager.swift')
| -rw-r--r-- | Sora/Data/Settings/SettingsManager.swift | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/Sora/Data/Settings/SettingsManager.swift b/Sora/Data/Settings/SettingsManager.swift index 666999b..b35ca64 100644 --- a/Sora/Data/Settings/SettingsManager.swift +++ b/Sora/Data/Settings/SettingsManager.swift @@ -54,6 +54,9 @@ class SettingsManager: ObservableObject { // swiftlint:disable:this type_body_l @AppStorage("customProviders") private var customProvidersData = Data() + @AppStorage("folders") + private var foldersData = Data() + // MARK: - Computed Properties var bookmarks: [SettingsBookmark] { get { @@ -140,6 +143,27 @@ class SettingsManager: ObservableObject { // swiftlint:disable:this type_body_l } } + var folders: [SettingsFolder] { + get { + syncableData( + key: "folders", + localData: foldersData, + sort: { $0 }, + identifier: { $0.id } + ) + } + + set { + syncableData( + key: "folders", + localData: $foldersData, + newValue: newValue, + sort: { $0 }, + identifier: { $0.id } + ) + } + } + // MARK: - Initialisation init() { syncObservation = NotificationCenter.default.addObserver( @@ -360,6 +384,12 @@ class SettingsManager: ObservableObject { // swiftlint:disable:this type_body_l bookmarks.append(contentsOf: newBookmarks) } + func updateBookmarkFolder(withID id: UUID, folder: SettingsFolder?) { + guard let index = bookmarks.firstIndex(where: { $0.id == id }) else { return } + + bookmarks[index].folder = folder + } + // MARK: - Search History Management func removeSearchHistoryEntry(at offsets: IndexSet) { searchHistory.remove(atOffsets: offsets) |