diff options
| author | Fuwn <[email protected]> | 2025-09-18 04:01:02 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-09-18 04:01:02 -0700 |
| commit | 6e2bb14e6f8782f047e3884419609c04167ce823 (patch) | |
| tree | c661adbca1e785e45ca65bdce5c84419f374d38c | |
| parent | feat: Development commit (diff) | |
| download | sora-testing-6e2bb14e6f8782f047e3884419609c04167ce823.tar.xz sora-testing-6e2bb14e6f8782f047e3884419609c04167ce823.zip | |
feat: Development commit
| -rw-r--r-- | Sora/Data/Settings/SettingsManager.swift | 4 | ||||
| -rw-r--r-- | Sora/Views/BookmarkMenuButtonView.swift | 26 |
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) } } |