Merge branch 'main' into multi-server-user-login

This commit is contained in:
Ethan Pippin 2021-10-15 00:47:39 -06:00
commit 0eec789f1a
3 changed files with 52 additions and 21 deletions

View File

@ -185,6 +185,7 @@
625CB57A2678C4A400530A6E /* ActivityIndicator in Frameworks */ = {isa = PBXBuildFile; productRef = 625CB5792678C4A400530A6E /* ActivityIndicator */; }; 625CB57A2678C4A400530A6E /* ActivityIndicator in Frameworks */ = {isa = PBXBuildFile; productRef = 625CB5792678C4A400530A6E /* ActivityIndicator */; };
6260FFF926A09754003FA968 /* CombineExt in Frameworks */ = {isa = PBXBuildFile; productRef = 6260FFF826A09754003FA968 /* CombineExt */; }; 6260FFF926A09754003FA968 /* CombineExt in Frameworks */ = {isa = PBXBuildFile; productRef = 6260FFF826A09754003FA968 /* CombineExt */; };
6261A0E026A0AB710072EF1C /* CombineExt in Frameworks */ = {isa = PBXBuildFile; productRef = 6261A0DF26A0AB710072EF1C /* CombineExt */; }; 6261A0E026A0AB710072EF1C /* CombineExt in Frameworks */ = {isa = PBXBuildFile; productRef = 6261A0DF26A0AB710072EF1C /* CombineExt */; };
62671DB327159C1800199D95 /* ItemCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6220D0BF26D61C5000B8E046 /* ItemCoordinator.swift */; };
6267B3D626710B8900A7371D /* CollectionExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6267B3D526710B8900A7371D /* CollectionExtensions.swift */; }; 6267B3D626710B8900A7371D /* CollectionExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6267B3D526710B8900A7371D /* CollectionExtensions.swift */; };
6267B3D726710B9700A7371D /* CollectionExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6267B3D526710B8900A7371D /* CollectionExtensions.swift */; }; 6267B3D726710B9700A7371D /* CollectionExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6267B3D526710B8900A7371D /* CollectionExtensions.swift */; };
6267B3D826710B9800A7371D /* CollectionExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6267B3D526710B8900A7371D /* CollectionExtensions.swift */; }; 6267B3D826710B9800A7371D /* CollectionExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6267B3D526710B8900A7371D /* CollectionExtensions.swift */; };
@ -1656,6 +1657,7 @@
531690ED267ABF46005D8AB9 /* ContinueWatchingView.swift in Sources */, 531690ED267ABF46005D8AB9 /* ContinueWatchingView.swift in Sources */,
E13DD3ED27178A54009D4DAF /* UserSignInViewModel.swift in Sources */, E13DD3ED27178A54009D4DAF /* UserSignInViewModel.swift in Sources */,
62EC3530267666A5000E9F2D /* SessionManager.swift in Sources */, 62EC3530267666A5000E9F2D /* SessionManager.swift in Sources */,
62671DB327159C1800199D95 /* ItemCoordinator.swift in Sources */,
E1AD104B26D94822003E4A08 /* DetailItem.swift in Sources */, E1AD104B26D94822003E4A08 /* DetailItem.swift in Sources */,
E13DD3E227176BD3009D4DAF /* ServerListViewModel.swift in Sources */, E13DD3E227176BD3009D4DAF /* ServerListViewModel.swift in Sources */,
53272539268C20100035FBF1 /* EpisodeItemView.swift in Sources */, 53272539268C20100035FBF1 /* EpisodeItemView.swift in Sources */,

View File

@ -12,33 +12,62 @@ import JellyfinAPI
import Stinsen import Stinsen
import SwiftUI import SwiftUI
final class ItemCoordinator: NavigationCoordinatable { #if os(iOS)
let stack = NavigationStack(initial: \ItemCoordinator.start) final class ItemCoordinator: NavigationCoordinatable {
let stack = NavigationStack(initial: \ItemCoordinator.start)
@Root var start = makeStart @Root var start = makeStart
@Route(.push) var item = makeItem @Route(.push) var item = makeItem
@Route(.push) var library = makeLibrary @Route(.push) var library = makeLibrary
@Route(.fullScreen) var videoPlayer = makeVideoPlayer @Route(.fullScreen) var videoPlayer = makeVideoPlayer
let itemDto: BaseItemDto let itemDto: BaseItemDto
init(item: BaseItemDto) { init(item: BaseItemDto) {
self.itemDto = item self.itemDto = item
}
func makeLibrary(params: LibraryCoordinatorParams) -> LibraryCoordinator {
LibraryCoordinator(viewModel: params.viewModel, title: params.title)
}
func makeItem(item: BaseItemDto) -> ItemCoordinator {
ItemCoordinator(item: item)
}
func makeVideoPlayer(item: BaseItemDto) -> NavigationViewCoordinator<VideoPlayerCoordinator> {
NavigationViewCoordinator(VideoPlayerCoordinator(item: item))
}
@ViewBuilder func makeStart() -> some View {
ItemNavigationView(item: itemDto)
}
} }
func makeLibrary(params: LibraryCoordinatorParams) -> LibraryCoordinator { #elseif os(tvOS)
LibraryCoordinator(viewModel: params.viewModel, title: params.title) // temp for fixing build error
} final class ItemCoordinator: NavigationCoordinatable {
let stack = NavigationStack<ItemCoordinator>(initial: \ItemCoordinator.start)
func makeItem(item: BaseItemDto) -> ItemCoordinator { @Root var start = makeStart
ItemCoordinator(item: item) @Route(.push) var item = makeItem
} @Route(.push) var library = makeLibrary
@Route(.fullScreen) var videoPlayer = makeVideoPlayer
func makeVideoPlayer(item: BaseItemDto) -> NavigationViewCoordinator<VideoPlayerCoordinator> { @ViewBuilder func makeStart() -> some View {
NavigationViewCoordinator(VideoPlayerCoordinator(item: item)) EmptyView()
} }
@ViewBuilder func makeStart() -> some View { @ViewBuilder func makeLibrary(params: (viewModel: LibraryViewModel, title: String)) -> some View {
ItemNavigationView(item: itemDto) EmptyView()
}
@ViewBuilder func makeItem(item: BaseItemDto) -> some View {
EmptyView()
}
@ViewBuilder func makeVideoPlayer(item: BaseItemDto) -> some View {
EmptyView()
}
} }
} #endif

Binary file not shown.