From eb51237d545c1ae3ddd479a6a1a4c229b04ff934 Mon Sep 17 00:00:00 2001 From: jhays Date: Tue, 7 Jun 2022 21:38:57 -0500 Subject: [PATCH] fix single root library nav issue --- Shared/Coordinators/MoviesLibrariesCoordinator.swift | 6 ++++++ Shared/Coordinators/TVLibrariesCoordinator.swift | 6 ++++++ Shared/ViewModels/MovieLibrariesViewModel.swift | 4 ++-- Shared/ViewModels/TVLibrariesViewModel.swift | 4 ++-- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/Shared/Coordinators/MoviesLibrariesCoordinator.swift b/Shared/Coordinators/MoviesLibrariesCoordinator.swift index 15e14888..6e30392f 100644 --- a/Shared/Coordinators/MoviesLibrariesCoordinator.swift +++ b/Shared/Coordinators/MoviesLibrariesCoordinator.swift @@ -17,6 +17,8 @@ final class MovieLibrariesCoordinator: NavigationCoordinatable { @Root var start = makeStart + @Root + var rootLibrary = makeRootLibrary @Route(.push) var library = makeLibrary @@ -36,4 +38,8 @@ final class MovieLibrariesCoordinator: NavigationCoordinatable { func makeLibrary(library: BaseItemDto) -> LibraryCoordinator { LibraryCoordinator(viewModel: LibraryViewModel(parentID: library.id), title: library.title) } + + func makeRootLibrary(library: BaseItemDto) -> LibraryCoordinator { + LibraryCoordinator(viewModel: LibraryViewModel(parentID: library.id), title: library.title) + } } diff --git a/Shared/Coordinators/TVLibrariesCoordinator.swift b/Shared/Coordinators/TVLibrariesCoordinator.swift index b2ec1121..4c6e63a7 100644 --- a/Shared/Coordinators/TVLibrariesCoordinator.swift +++ b/Shared/Coordinators/TVLibrariesCoordinator.swift @@ -17,6 +17,8 @@ final class TVLibrariesCoordinator: NavigationCoordinatable { @Root var start = makeStart + @Root + var rootLibrary = makeRootLibrary @Route(.push) var library = makeLibrary @@ -36,4 +38,8 @@ final class TVLibrariesCoordinator: NavigationCoordinatable { func makeLibrary(library: BaseItemDto) -> LibraryCoordinator { LibraryCoordinator(viewModel: LibraryViewModel(parentID: library.id), title: library.title) } + + func makeRootLibrary(library: BaseItemDto) -> LibraryCoordinator { + LibraryCoordinator(viewModel: LibraryViewModel(parentID: library.id), title: library.title) + } } diff --git a/Shared/ViewModels/MovieLibrariesViewModel.swift b/Shared/ViewModels/MovieLibrariesViewModel.swift index 77f84536..4d6fc934 100644 --- a/Shared/ViewModels/MovieLibrariesViewModel.swift +++ b/Shared/ViewModels/MovieLibrariesViewModel.swift @@ -54,8 +54,8 @@ final class MovieLibrariesViewModel: ViewModel { } self.rows = self.calculateRows() if self.libraries.count == 1, let library = self.libraries.first { - // show library - self.router?.route(to: \.library, library) + // make this library the root of this stack + self.router?.coordinator.root(\.rootLibrary, library) } } }) diff --git a/Shared/ViewModels/TVLibrariesViewModel.swift b/Shared/ViewModels/TVLibrariesViewModel.swift index 4fc7c53c..aca00158 100644 --- a/Shared/ViewModels/TVLibrariesViewModel.swift +++ b/Shared/ViewModels/TVLibrariesViewModel.swift @@ -54,8 +54,8 @@ final class TVLibrariesViewModel: ViewModel { } self.rows = self.calculateRows() if self.libraries.count == 1, let library = self.libraries.first { - // show library - self.router?.route(to: \.library, library) + // make this library the root of this stack + self.router?.coordinator.root(\.rootLibrary, library) } } })