Use menu for add to playlists

This commit is contained in:
Arkadiusz Fal
2022-12-16 19:34:12 +01:00
parent 6b30e804c0
commit b621eba236
3 changed files with 34 additions and 13 deletions

View File

@@ -72,7 +72,11 @@ struct VideoContextMenuView: View {
if accounts.app.supportsUserPlaylists, accounts.signedIn, !video.isLocal {
Section {
addToPlaylistButton
#if os(tvOS)
addToPlaylistButton
#else
addToPlaylistMenu
#endif
addToLastPlaylistButton
if let id = navigation.tabSelection?.playlistID ?? playlistID {
@@ -309,6 +313,26 @@ struct VideoContextMenuView: View {
}
}
#if !os(tvOS)
@ViewBuilder private var addToPlaylistMenu: some View {
if playlists.playlists.isEmpty {
Text("No Playlists")
} else {
Menu {
ForEach(playlists.editable) { playlist in
Button {
playlists.addVideo(playlistID: playlist.id, videoID: video.videoID)
} label: {
Text(playlist.title).tag(playlist.id)
}
}
} label: {
Label("Add to Playlist...", systemImage: "text.badge.plus")
}
}
}
#endif
func removeFromPlaylistButton(playlistID: String) -> some View {
Button {
playlists.removeVideo(index: video.indexID!, playlistID: playlistID)