diff options
| author | Fuwn <[email protected]> | 2025-09-09 02:23:13 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-09-09 02:23:13 -0700 |
| commit | 23360b32d6973215944adc334ad5e977e82e4e5f (patch) | |
| tree | 0cf5f3d99a9fa7cefc532b0143e7edec6116c09b /Sora/Views/BookmarkMenuButtonView.swift | |
| parent | feat: Development commit (diff) | |
| download | sora-testing-23360b32d6973215944adc334ad5e977e82e4e5f.tar.xz sora-testing-23360b32d6973215944adc334ad5e977e82e4e5f.zip | |
feat: Development commit
Diffstat (limited to 'Sora/Views/BookmarkMenuButtonView.swift')
| -rw-r--r-- | Sora/Views/BookmarkMenuButtonView.swift | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/Sora/Views/BookmarkMenuButtonView.swift b/Sora/Views/BookmarkMenuButtonView.swift index 91009d0..9af2cf6 100644 --- a/Sora/Views/BookmarkMenuButtonView.swift +++ b/Sora/Views/BookmarkMenuButtonView.swift @@ -33,9 +33,14 @@ struct BookmarkMenuButtonView: View { Menu { ForEach(settings.folders.filter { $0.topLevelName == nil }, id: \.id) { folder in Button(action: { - let newBookmark = SettingsBookmark(provider: provider, tags: tags, folder: folder.id) + settings.addBookmark(provider: provider, tags: tags) - settings.bookmarks.append(newBookmark) + 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) + } }) { Label(folder.name, systemImage: "folder") } @@ -53,13 +58,14 @@ struct BookmarkMenuButtonView: View { Menu { ForEach(topLevelFolders[topLevelName] ?? [], id: \.id) { folder in Button(action: { - let newBookmark = SettingsBookmark( - provider: provider, - tags: tags, - folder: folder.id - ) + settings.addBookmark(provider: provider, tags: tags) - settings.bookmarks.append(newBookmark) + 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) + } }) { Text(folder.shortName) } @@ -94,10 +100,13 @@ struct BookmarkMenuButtonView: View { let newFolder = SettingsFolder(name: newCollectionName) settings.folders.append(newFolder) + settings.addBookmark(provider: provider, tags: tags) - let newBookmark = SettingsBookmark(provider: provider, tags: tags, folder: newFolder.id) - - settings.bookmarks.append(newBookmark) + 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) + } } } |