Add support for Piped accounts and subscriptions

This commit is contained in:
Arkadiusz Fal
2021-11-15 00:06:01 +01:00
parent a70d4f3b38
commit 0e3effd512
23 changed files with 253 additions and 81 deletions

View File

@@ -15,7 +15,7 @@ struct AccountsMenuView: View {
}
}
} label: {
Label(model.current?.name ?? "Select Account", systemImage: "person.crop.circle")
Label(model.current?.description ?? "Select Account", systemImage: "person.crop.circle")
.labelStyle(.titleAndIcon)
}
.disabled(instances.isEmpty)

View File

@@ -30,9 +30,6 @@ struct AppSidebarPlaylists: View {
newPlaylistButton
.padding(.top, 8)
}
.onAppear {
playlists.load()
}
}
var newPlaylistButton: some View {

View File

@@ -22,8 +22,5 @@ struct AppSidebarSubscriptions: View {
.id("channel\(channel.id)")
}
}
.onAppear {
subscriptions.load()
}
}
}

View File

@@ -3,6 +3,8 @@ import SwiftUI
struct Sidebar: View {
@EnvironmentObject<AccountsModel> private var accounts
@EnvironmentObject<NavigationModel> private var navigation
@EnvironmentObject<PlaylistsModel> private var playlists
@EnvironmentObject<SubscriptionsModel> private var subscriptions
var body: some View {
ScrollViewReader { scrollView in
@@ -13,12 +15,25 @@ struct Sidebar: View {
AppSidebarRecents()
.id("recentlyOpened")
if accounts.signedIn {
AppSidebarSubscriptions()
AppSidebarPlaylists()
if accounts.api.signedIn {
if accounts.app.supportsSubscriptions {
AppSidebarSubscriptions()
}
if accounts.app.supportsUserPlaylists {
AppSidebarPlaylists()
}
}
}
}
.onAppear {
subscriptions.load()
playlists.load()
}
.onChange(of: accounts.signedIn) { _ in
subscriptions.load(force: true)
playlists.load(force: true)
}
.onChange(of: navigation.sidebarSectionChanged) { _ in
scrollScrollViewToItem(scrollView: scrollView, for: navigation.tabSelection)
}