From 23360b32d6973215944adc334ad5e977e82e4e5f Mon Sep 17 00:00:00 2001 From: Fuwn Date: Tue, 9 Sep 2025 02:23:13 -0700 Subject: feat: Development commit --- Sora/Views/BookmarkMenuButtonView.swift | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) (limited to 'Sora/Views/BookmarkMenuButtonView.swift') 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) + } } } -- cgit v1.2.3