Favorited playlists belong to account

This commit is contained in:
Arkadiusz Fal 2022-12-11 23:30:28 +01:00
parent 115f9fea67
commit 09ff16d464
4 changed files with 18 additions and 12 deletions

View File

@ -7,7 +7,7 @@ struct FavoriteItem: Codable, Equatable, Identifiable, Defaults.Serializable {
case popular
case trending(String, String?)
case channel(String, String, String)
case playlist(String)
case playlist(String, String)
case channelPlaylist(String, String, String)
case searchQuery(String, String, String, String)

View File

@ -124,7 +124,7 @@ struct FavoriteItemView: View {
ChannelVideosView(channel: .init(id: id, name: name))
case let .channelPlaylist(_, id, title):
ChannelPlaylistView(playlist: .init(id: id, title: title))
case let .playlist(id):
case let .playlist(_, id):
ChannelPlaylistView(playlist: .init(id: id, title: label))
case .subscriptions:
SubscriptionsView()
@ -157,7 +157,7 @@ struct FavoriteItemView: View {
case let .searchQuery(text, _, _, _):
navigation.hideViewsAboveBrowser()
navigation.openSearchQuery(text)
case let .playlist(id):
case let .playlist(_, id):
navigation.tabSelection = .playlist(id)
}
}
@ -193,6 +193,8 @@ struct FavoriteItemView: View {
case let .channelPlaylist(appType, _, _):
guard let appType = VideosApp.AppType(rawValue: appType) else { return false }
return accounts.app.appType == appType
case let .playlist(accountID, _):
return accounts.current?.id == accountID
default:
return true
}
@ -222,7 +224,7 @@ struct FavoriteItemView: View {
case let .channelPlaylist(_, id, _):
return accounts.api.channelPlaylist(id)
case let .playlist(id):
case let .playlist(_, id):
return accounts.api.playlist(id)
case let .searchQuery(text, date, duration, order):
@ -241,11 +243,12 @@ struct FavoriteItemView: View {
}
private var label: String {
if case let .playlist(id) = item.section {
switch item.section {
case let .playlist(_, id):
return playlists.find(id: id)?.title ?? "Playlist".localized()
default:
return item.section.label.localized()
}
return item.section.label.localized()
}
}

View File

@ -197,8 +197,10 @@ struct PlaylistsView: View {
editPlaylistButton
FavoriteButton(item: FavoriteItem(section: .playlist(currentPlaylist.id)))
.labelStyle(.iconOnly)
if let account = accounts.current {
FavoriteButton(item: FavoriteItem(section: .playlist(account.id, currentPlaylist.id)))
.labelStyle(.iconOnly)
}
}
}

View File

@ -102,11 +102,12 @@ struct EditFavorites: View {
}
func label(_ item: FavoriteItem) -> String {
if case let .playlist(id) = item.section {
switch item.section {
case let .playlist(_, id):
return playlistsModel.find(id: id)?.title ?? "Playlist".localized()
default:
return item.section.label.localized()
}
return item.section.label.localized()
}
}