This commit is contained in:
Ethan Pippin 2022-09-12 16:20:59 -06:00 committed by GitHub
parent f13d734c76
commit 83f9c1c81c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 5 deletions

View File

@ -43,6 +43,8 @@ final class LibraryCoordinator: NavigationCoordinatable {
#if os(tvOS)
@Route(.modal)
var item = makeItem
@Route(.push)
var library = makeLibrary
#else
@Route(.push)
var item = makeItem
@ -71,6 +73,10 @@ final class LibraryCoordinator: NavigationCoordinatable {
func makeItem(item: BaseItemDto) -> NavigationViewCoordinator<ItemCoordinator> {
NavigationViewCoordinator(ItemCoordinator(item: item))
}
func makeLibrary(parameters: LibraryCoordinator.Parameters) -> NavigationViewCoordinator<LibraryCoordinator> {
NavigationViewCoordinator(LibraryCoordinator(parameters: parameters))
}
#else
func makeItem(item: BaseItemDto) -> ItemCoordinator {
ItemCoordinator(item: item)

View File

@ -9,12 +9,13 @@
import CollectionView
import Defaults
import Introspect
import JellyfinAPI
import SwiftUI
struct LibraryView: View {
@EnvironmentObject
private var libraryRouter: LibraryCoordinator.Router
private var router: LibraryCoordinator.Router
@ObservedObject
var viewModel: LibraryViewModel
@State
@ -33,12 +34,26 @@ struct LibraryView: View {
L10n.noResults.text
}
private func baseItemOnSelect(_ item: BaseItemDto) {
if let baseParent = viewModel.parent as? BaseItemDto {
if baseParent.collectionType == "folders" {
router.route(to: \.library, .init(parent: item, type: .folders, filters: .init()))
} else if item.type == .folder {
router.route(to: \.library, .init(parent: item, type: .library, filters: .init()))
} else {
router.route(to: \.item, item)
}
} else {
router.route(to: \.item, item)
}
}
@ViewBuilder
private var libraryItemsView: some View {
CollectionView(items: viewModel.items) { _, item, _ in
PosterButton(item: item, type: libraryPosterType)
.onSelect { item in
libraryRouter.route(to: \.item, item)
baseItemOnSelect(item)
}
}
.layout { _, layoutEnvironment in

View File

@ -44,9 +44,6 @@ struct ItemView: View {
}
case .person:
LibraryView(viewModel: .init(parent: item, type: .person))
case .collectionFolder:
Text("Here")
// LibraryView(viewModel: .init(parent: item, type: .folders))
default:
Text(L10n.notImplementedYetWithType(item.type ?? "--"))
}