summaryrefslogtreecommitdiff
path: root/Sora/Views/BookmarkMenuButtonView.swift
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-09-09 02:23:13 -0700
committerFuwn <[email protected]>2025-09-09 02:23:13 -0700
commit23360b32d6973215944adc334ad5e977e82e4e5f (patch)
tree0cf5f3d99a9fa7cefc532b0143e7edec6116c09b /Sora/Views/BookmarkMenuButtonView.swift
parentfeat: Development commit (diff)
downloadsora-testing-23360b32d6973215944adc334ad5e977e82e4e5f.tar.xz
sora-testing-23360b32d6973215944adc334ad5e977e82e4e5f.zip
feat: Development commit
Diffstat (limited to 'Sora/Views/BookmarkMenuButtonView.swift')
-rw-r--r--Sora/Views/BookmarkMenuButtonView.swift31
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)
+ }
}
}