summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-07-08 07:56:44 -0700
committerFuwn <[email protected]>2025-07-08 07:56:44 -0700
commitf2b1dab2ea2650346012d883a8e9138b25db8525 (patch)
tree0b1c39d338c8ca45c94f47254eb93d667f3964ae
parentfeat: Development commit (diff)
downloadsora-testing-f2b1dab2ea2650346012d883a8e9138b25db8525.tar.xz
sora-testing-f2b1dab2ea2650346012d883a8e9138b25db8525.zip
feat: Development commit
-rw-r--r--Sora/Views/BookmarkMenuButtonView.swift9
-rw-r--r--Sora/Views/Generic/GenericListView.swift12
2 files changed, 15 insertions, 6 deletions
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<T: Identifiable & Hashable & GenericItem>: 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<T: Identifiable & Hashable & GenericItem>: View {
}) {
Text(folder.shortName)
}
+ .disabled(item.folder == folder.id)
}
} label: {
Text(topLevelName)