From f2b1dab2ea2650346012d883a8e9138b25db8525 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Tue, 8 Jul 2025 07:56:44 -0700 Subject: feat: Development commit --- Sora/Views/BookmarkMenuButtonView.swift | 9 +++++++++ Sora/Views/Generic/GenericListView.swift | 12 ++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) (limited to 'Sora') diff --git a/Sora/Views/BookmarkMenuButtonView.swift b/Sora/Views/BookmarkMenuButtonView.swift index c46894d..91009d0 100644 --- a/Sora/Views/BookmarkMenuButtonView.swift +++ b/Sora/Views/BookmarkMenuButtonView.swift @@ -39,6 +39,7 @@ struct BookmarkMenuButtonView: View { }) { Label(folder.name, systemImage: "folder") } + .disabled(isBookmarkedInFolder(folderId: folder.id)) } let topLevelFolders = settings.folders @@ -62,6 +63,7 @@ struct BookmarkMenuButtonView: View { }) { Text(folder.shortName) } + .disabled(isBookmarkedInFolder(folderId: folder.id)) } } label: { Text(topLevelName) @@ -98,4 +100,11 @@ struct BookmarkMenuButtonView: View { settings.bookmarks.append(newBookmark) } } + + private func isBookmarkedInFolder(folderId: UUID) -> Bool { + settings.bookmarks.contains { bookmark in + bookmark.folder == folderId && Set(bookmark.tags) == Set(tags) + && bookmark.provider == provider + } + } } diff --git a/Sora/Views/Generic/GenericListView.swift b/Sora/Views/Generic/GenericListView.swift index e9376fa..7c568d6 100644 --- a/Sora/Views/Generic/GenericListView.swift +++ b/Sora/Views/Generic/GenericListView.swift @@ -381,13 +381,12 @@ struct GenericListView: View { Menu { ForEach(settings.folders.filter { $0.topLevelName == nil }, id: \.id) { folder in - if item.folder != folder.id { - Button(action: { - settings.updateBookmarkFolder(withID: item.id, folder: folder.id) - }) { - Label(folder.name, systemImage: "folder") - } + Button(action: { + settings.updateBookmarkFolder(withID: item.id, folder: folder.id) + }) { + Label(folder.name, systemImage: "folder") } + .disabled(item.folder == folder.id) } let topLevelFolders = settings.folders @@ -405,6 +404,7 @@ struct GenericListView: View { }) { Text(folder.shortName) } + .disabled(item.folder == folder.id) } } label: { Text(topLevelName) -- cgit v1.2.3