summaryrefslogtreecommitdiff
path: root/Sora
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-09-09 03:32:41 -0700
committerFuwn <[email protected]>2025-09-09 03:32:41 -0700
commit7dc855bddca8919b16b902c989b38a4e1ec06920 (patch)
tree9d7bfae241ea2305be92d92ebba60b2c44ca0c9e /Sora
parentfeat: Development commit (diff)
downloadsora-testing-7dc855bddca8919b16b902c989b38a4e1ec06920.tar.xz
sora-testing-7dc855bddca8919b16b902c989b38a4e1ec06920.zip
feat: Development commit
Diffstat (limited to 'Sora')
-rw-r--r--Sora/Views/BookmarkMenuButtonView.swift104
-rw-r--r--Sora/Views/FavoriteMenuButtonView.swift84
2 files changed, 88 insertions, 100 deletions
diff --git a/Sora/Views/BookmarkMenuButtonView.swift b/Sora/Views/BookmarkMenuButtonView.swift
index 9af2cf6..714448e 100644
--- a/Sora/Views/BookmarkMenuButtonView.swift
+++ b/Sora/Views/BookmarkMenuButtonView.swift
@@ -16,81 +16,75 @@ struct BookmarkMenuButtonView: View {
}
Menu {
- Button(action: {
- if isBookmarked {
- settings.removeBookmark(withTags: tags)
- } else {
+ ForEach(settings.folders.filter { $0.topLevelName == nil }, id: \.id) { folder in
+ Button(action: {
settings.addBookmark(provider: provider, tags: tags)
- }
- }) {
- if isBookmarked {
- Label("Remove Bookmark", systemImage: "bookmark.fill")
- } else {
- Label("Bookmark Tag\(tags.count == 1 ? "" : "s")", systemImage: "bookmark")
- }
- }
- Menu {
- ForEach(settings.folders.filter { $0.topLevelName == nil }, id: \.id) { folder in
- Button(action: {
- settings.addBookmark(provider: provider, tags: tags)
-
- 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")
+ 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)
}
- .disabled(isBookmarkedInFolder(folderId: folder.id))
+ }) {
+ Label(folder.name, systemImage: "folder")
}
+ .disabled(isBookmarkedInFolder(folderId: folder.id))
+ }
- let topLevelFolders = settings.folders
- .reduce(into: [String: [SettingsFolder]]()) { result, folder in
- guard let topLevelName = folder.topLevelName else { return }
+ let topLevelFolders = settings.folders
+ .reduce(into: [String: [SettingsFolder]]()) { result, folder in
+ guard let topLevelName = folder.topLevelName else { return }
- result[topLevelName, default: []].append(folder)
- }
+ result[topLevelName, default: []].append(folder)
+ }
- ForEach(topLevelFolders.keys.sorted(), id: \.self) { topLevelName in
- Menu {
- ForEach(topLevelFolders[topLevelName] ?? [], id: \.id) { folder in
- Button(action: {
- settings.addBookmark(provider: provider, tags: tags)
+ ForEach(topLevelFolders.keys.sorted(), id: \.self) { topLevelName in
+ Menu {
+ ForEach(topLevelFolders[topLevelName] ?? [], id: \.id) { folder in
+ Button(action: {
+ settings.addBookmark(provider: provider, tags: tags)
- 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)
+ 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)
}
- .disabled(isBookmarkedInFolder(folderId: folder.id))
+ }) {
+ Text(folder.shortName)
}
- } label: {
- Text(topLevelName)
+ .disabled(isBookmarkedInFolder(folderId: folder.id))
}
+ } label: {
+ Text(topLevelName)
}
+ }
- Button(action: {
- isNewCollectionAlertPresented = true
- }) {
- Label("New Collection", systemImage: "plus")
- }
- .disabled(disableNewCollection)
- } label: {
- Label("Bookmark to Collection", systemImage: "folder.badge.plus")
+ Button(action: {
+ isNewCollectionAlertPresented = true
+ }) {
+ Label("New Collection", systemImage: "plus")
}
+ .disabled(disableNewCollection)
} label: {
if isBookmarked {
Label("Bookmarked", systemImage: "bookmark.fill")
} else {
Label("Bookmark", systemImage: "bookmark")
}
+
+ // if isBookmarked {
+ // Label("Remove Bookmark", systemImage: "bookmark.fill")
+ // } else {
+ // Label("Bookmark Tag\(tags.count == 1 ? "" : "s")", systemImage: "bookmark")
+ // }
+ } primaryAction: {
+ if isBookmarked {
+ settings.removeBookmark(withTags: tags)
+ } else {
+ settings.addBookmark(provider: provider, tags: tags)
+ }
}
.collectionAlerts(
isNewCollectionAlertPresented: $isNewCollectionAlertPresented,
diff --git a/Sora/Views/FavoriteMenuButtonView.swift b/Sora/Views/FavoriteMenuButtonView.swift
index b6b99a9..aeb360b 100644
--- a/Sora/Views/FavoriteMenuButtonView.swift
+++ b/Sora/Views/FavoriteMenuButtonView.swift
@@ -14,67 +14,61 @@ struct FavoriteMenuButtonView: View {
let isFavorited = settings.isFavorite(postId: post.id, provider: manager.provider)
Menu {
- Button(action: {
- if isFavorited {
- settings.removeFavorite(withPostId: post.id, provider: manager.provider)
- } else {
- settings.addFavorite(post: post, provider: manager.provider)
- }
- }) {
- if isFavorited {
- Label("Remove from Favorites", systemImage: "heart.fill")
- } else {
- Label("Add to Favorites", systemImage: "heart")
+ ForEach(settings.folders.filter { $0.topLevelName == nil }, id: \.id) { folder in
+ Button(action: {
+ settings.addFavorite(post: post, provider: manager.provider, folder: folder.id)
+ }) {
+ Label(folder.name, systemImage: "folder")
}
+ .disabled(isFavoritedInFolder(folderId: folder.id))
}
- Menu {
- ForEach(settings.folders.filter { $0.topLevelName == nil }, id: \.id) { folder in
- Button(action: {
- settings.addFavorite(post: post, provider: manager.provider, folder: folder.id)
- }) {
- Label(folder.name, systemImage: "folder")
- }
- .disabled(isFavoritedInFolder(folderId: folder.id))
- }
-
- let topLevelFolders = settings.folders
- .reduce(into: [String: [SettingsFolder]]()) { result, folder in
- guard let topLevelName = folder.topLevelName else { return }
+ let topLevelFolders = settings.folders
+ .reduce(into: [String: [SettingsFolder]]()) { result, folder in
+ guard let topLevelName = folder.topLevelName else { return }
- result[topLevelName, default: []].append(folder)
- }
+ result[topLevelName, default: []].append(folder)
+ }
- ForEach(topLevelFolders.keys.sorted(), id: \.self) { topLevelName in
- Menu {
- ForEach(topLevelFolders[topLevelName] ?? [], id: \.id) { folder in
- Button(action: {
- settings.addFavorite(post: post, provider: manager.provider, folder: folder.id)
- }) {
- Text(folder.shortName)
- }
- .disabled(isFavoritedInFolder(folderId: folder.id))
+ ForEach(topLevelFolders.keys.sorted(), id: \.self) { topLevelName in
+ Menu {
+ ForEach(topLevelFolders[topLevelName] ?? [], id: \.id) { folder in
+ Button(action: {
+ settings.addFavorite(post: post, provider: manager.provider, folder: folder.id)
+ }) {
+ Text(folder.shortName)
}
- } label: {
- Text(topLevelName)
+ .disabled(isFavoritedInFolder(folderId: folder.id))
}
+ } label: {
+ Text(topLevelName)
}
+ }
- Button(action: {
- isNewCollectionAlertPresented = true
- }) {
- Label("New Collection", systemImage: "plus")
- }
- .disabled(disableNewCollection)
- } label: {
- Label("Favorite to Collection", systemImage: "folder.badge.plus")
+ Button(action: {
+ isNewCollectionAlertPresented = true
+ }) {
+ Label("New Collection", systemImage: "plus")
}
+ .disabled(disableNewCollection)
} label: {
if isFavorited {
Label("Favorited", systemImage: "heart.fill")
} else {
Label("Favorite", systemImage: "heart")
}
+
+ // if isFavorited {
+ // Label("Remove from Favorites", systemImage: "heart.fill")
+ // } else {
+ // Label("Add to Favorites", systemImage: "heart")
+ // }
+ } primaryAction: {
+ if isFavorited {
+ settings.removeFavorite(withPostId: post.id, provider: manager.provider)
+ } else {
+ settings.addFavorite(post: post, provider: manager.provider)
+ }
}
.collectionAlerts(
isNewCollectionAlertPresented: $isNewCollectionAlertPresented,