summaryrefslogtreecommitdiff
path: root/Sora
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-09-18 04:01:02 -0700
committerFuwn <[email protected]>2025-09-18 04:01:02 -0700
commit6e2bb14e6f8782f047e3884419609c04167ce823 (patch)
treec661adbca1e785e45ca65bdce5c84419f374d38c /Sora
parentfeat: Development commit (diff)
downloadsora-testing-6e2bb14e6f8782f047e3884419609c04167ce823.tar.xz
sora-testing-6e2bb14e6f8782f047e3884419609c04167ce823.zip
feat: Development commit
Diffstat (limited to 'Sora')
-rw-r--r--Sora/Data/Settings/SettingsManager.swift4
-rw-r--r--Sora/Views/BookmarkMenuButtonView.swift26
2 files changed, 5 insertions, 25 deletions
diff --git a/Sora/Data/Settings/SettingsManager.swift b/Sora/Data/Settings/SettingsManager.swift
index 4f55fdf..6f9cb41 100644
--- a/Sora/Data/Settings/SettingsManager.swift
+++ b/Sora/Data/Settings/SettingsManager.swift
@@ -888,7 +888,7 @@ class SettingsManager: ObservableObject { // swiftlint:disable:this type_body_l
}
// MARK: Bookmark Management
- func addBookmark(provider: BooruProvider, tags: [String]) {
+ func addBookmark(provider: BooruProvider, tags: [String], folder: UUID? = nil) {
let normalizedTags = tags.map { $0.lowercased() }
let existingBookmark = bookmarks.first { bookmark in
@@ -904,7 +904,7 @@ class SettingsManager: ObservableObject { // swiftlint:disable:this type_body_l
var updatedBookmarks = bookmarks
updatedBookmarks.append(
- SettingsBookmark(provider: provider, tags: normalizedTags)
+ SettingsBookmark(provider: provider, tags: normalizedTags, folder: folder)
)
if let data = Self.encode(updatedBookmarks), data.count < 1_000_000 { // 1 MB
diff --git a/Sora/Views/BookmarkMenuButtonView.swift b/Sora/Views/BookmarkMenuButtonView.swift
index 714448e..339854f 100644
--- a/Sora/Views/BookmarkMenuButtonView.swift
+++ b/Sora/Views/BookmarkMenuButtonView.swift
@@ -18,14 +18,7 @@ struct BookmarkMenuButtonView: View {
Menu {
ForEach(settings.folders.filter { $0.topLevelName == nil }, id: \.id) { folder in
Button(action: {
- settings.addBookmark(provider: provider, tags: tags)
-
- if let bookmarkId = settings.bookmarks.first(where: { bookmark in
- bookmark.provider == provider
- && Set(bookmark.tags) == Set(tags.map { $0.lowercased() })
- })?.id {
- settings.updateBookmarkFolder(withID: bookmarkId, folder: folder.id)
- }
+ settings.addBookmark(provider: provider, tags: tags, folder: folder.id)
}) {
Label(folder.name, systemImage: "folder")
}
@@ -43,14 +36,7 @@ struct BookmarkMenuButtonView: View {
Menu {
ForEach(topLevelFolders[topLevelName] ?? [], id: \.id) { folder in
Button(action: {
- settings.addBookmark(provider: provider, tags: tags)
-
- if let bookmarkId = settings.bookmarks.first(where: { bookmark in
- bookmark.provider == provider
- && Set(bookmark.tags) == Set(tags.map { $0.lowercased() })
- })?.id {
- settings.updateBookmarkFolder(withID: bookmarkId, folder: folder.id)
- }
+ settings.addBookmark(provider: provider, tags: tags, folder: folder.id)
}) {
Text(folder.shortName)
}
@@ -94,13 +80,7 @@ struct BookmarkMenuButtonView: View {
let newFolder = SettingsFolder(name: newCollectionName)
settings.folders.append(newFolder)
- settings.addBookmark(provider: provider, tags: tags)
-
- if let bookmarkId = settings.bookmarks.first(where: { bookmark in
- bookmark.provider == provider && Set(bookmark.tags) == Set(tags.map { $0.lowercased() })
- })?.id {
- settings.updateBookmarkFolder(withID: bookmarkId, folder: newFolder.id)
- }
+ settings.addBookmark(provider: provider, tags: tags, folder: newFolder.id)
}
}