diff --git a/Shared/ViewModels/ItemViewModel/SeriesItemViewModel.swift b/Shared/ViewModels/ItemViewModel/SeriesItemViewModel.swift index 6f4fc40c..f633dd80 100644 --- a/Shared/ViewModels/ItemViewModel/SeriesItemViewModel.swift +++ b/Shared/ViewModels/ItemViewModel/SeriesItemViewModel.swift @@ -117,7 +117,7 @@ final class SeriesItemViewModel: ItemViewModel, MenuPosterHStackModel { func select(section: BaseItemDto) { self.menuSelection = section - if !menuSections.keys.contains(section) { + if let episodes = menuSections[section], episodes.isEmpty { getEpisodesForSeason(section) } } @@ -132,7 +132,11 @@ final class SeriesItemViewModel: ItemViewModel, MenuPosterHStackModel { let response = try await userSession.client.send(request) guard let seasons = response.value.items else { return } - + await MainActor.run { + for season in seasons { + self.menuSections[season] = [] + } + } if let firstSeason = seasons.first { self.getEpisodesForSeason(firstSeason) await MainActor.run { diff --git a/Swiftfin tvOS/Views/ItemView/SeriesItemView/Components/SeriesEpisodeSelector.swift b/Swiftfin tvOS/Views/ItemView/SeriesItemView/Components/SeriesEpisodeSelector.swift index 801fc36c..8e5a763c 100644 --- a/Swiftfin tvOS/Views/ItemView/SeriesItemView/Components/SeriesEpisodeSelector.swift +++ b/Swiftfin tvOS/Views/ItemView/SeriesItemView/Components/SeriesEpisodeSelector.swift @@ -159,7 +159,6 @@ extension SeriesEpisodeSelector { } .onChange(of: viewModel.menuSelection) { _ in lastFocusedEpisodeID = items.first?.id - wrappedScrollView?.scrollToTop(animated: false) } .onChange(of: focusedEpisodeID) { episodeIndex in guard let episodeIndex = episodeIndex else { return }