summaryrefslogtreecommitdiff
path: root/Sora/Data/Settings/SettingsManager.swift
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-06-09 05:45:45 -0700
committerFuwn <[email protected]>2025-06-09 05:45:45 -0700
commitebe4203869222a07a0bdc9521b42cce6b13f1f1b (patch)
tree35083595a16c23cb550d95a56f925eeafba90174 /Sora/Data/Settings/SettingsManager.swift
parentfeat: Development commit (diff)
downloadsora-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.swift30
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)