fix (#579)
This commit is contained in:
parent
f13d734c76
commit
83f9c1c81c
|
@ -43,6 +43,8 @@ final class LibraryCoordinator: NavigationCoordinatable {
|
||||||
#if os(tvOS)
|
#if os(tvOS)
|
||||||
@Route(.modal)
|
@Route(.modal)
|
||||||
var item = makeItem
|
var item = makeItem
|
||||||
|
@Route(.push)
|
||||||
|
var library = makeLibrary
|
||||||
#else
|
#else
|
||||||
@Route(.push)
|
@Route(.push)
|
||||||
var item = makeItem
|
var item = makeItem
|
||||||
|
@ -71,6 +73,10 @@ final class LibraryCoordinator: NavigationCoordinatable {
|
||||||
func makeItem(item: BaseItemDto) -> NavigationViewCoordinator<ItemCoordinator> {
|
func makeItem(item: BaseItemDto) -> NavigationViewCoordinator<ItemCoordinator> {
|
||||||
NavigationViewCoordinator(ItemCoordinator(item: item))
|
NavigationViewCoordinator(ItemCoordinator(item: item))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func makeLibrary(parameters: LibraryCoordinator.Parameters) -> NavigationViewCoordinator<LibraryCoordinator> {
|
||||||
|
NavigationViewCoordinator(LibraryCoordinator(parameters: parameters))
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
func makeItem(item: BaseItemDto) -> ItemCoordinator {
|
func makeItem(item: BaseItemDto) -> ItemCoordinator {
|
||||||
ItemCoordinator(item: item)
|
ItemCoordinator(item: item)
|
||||||
|
|
|
@ -9,12 +9,13 @@
|
||||||
import CollectionView
|
import CollectionView
|
||||||
import Defaults
|
import Defaults
|
||||||
import Introspect
|
import Introspect
|
||||||
|
import JellyfinAPI
|
||||||
import SwiftUI
|
import SwiftUI
|
||||||
|
|
||||||
struct LibraryView: View {
|
struct LibraryView: View {
|
||||||
|
|
||||||
@EnvironmentObject
|
@EnvironmentObject
|
||||||
private var libraryRouter: LibraryCoordinator.Router
|
private var router: LibraryCoordinator.Router
|
||||||
@ObservedObject
|
@ObservedObject
|
||||||
var viewModel: LibraryViewModel
|
var viewModel: LibraryViewModel
|
||||||
@State
|
@State
|
||||||
|
@ -33,12 +34,26 @@ struct LibraryView: View {
|
||||||
L10n.noResults.text
|
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
|
@ViewBuilder
|
||||||
private var libraryItemsView: some View {
|
private var libraryItemsView: some View {
|
||||||
CollectionView(items: viewModel.items) { _, item, _ in
|
CollectionView(items: viewModel.items) { _, item, _ in
|
||||||
PosterButton(item: item, type: libraryPosterType)
|
PosterButton(item: item, type: libraryPosterType)
|
||||||
.onSelect { item in
|
.onSelect { item in
|
||||||
libraryRouter.route(to: \.item, item)
|
baseItemOnSelect(item)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.layout { _, layoutEnvironment in
|
.layout { _, layoutEnvironment in
|
||||||
|
|
|
@ -44,9 +44,6 @@ struct ItemView: View {
|
||||||
}
|
}
|
||||||
case .person:
|
case .person:
|
||||||
LibraryView(viewModel: .init(parent: item, type: .person))
|
LibraryView(viewModel: .init(parent: item, type: .person))
|
||||||
case .collectionFolder:
|
|
||||||
Text("Here")
|
|
||||||
// LibraryView(viewModel: .init(parent: item, type: .folders))
|
|
||||||
default:
|
default:
|
||||||
Text(L10n.notImplementedYetWithType(item.type ?? "--"))
|
Text(L10n.notImplementedYetWithType(item.type ?? "--"))
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue