diff --git a/Shared/ViewModels/EpisodesRowManager.swift b/Shared/ViewModels/EpisodesRowManager.swift index 5bc12889..47bbd2e3 100644 --- a/Shared/ViewModels/EpisodesRowManager.swift +++ b/Shared/ViewModels/EpisodesRowManager.swift @@ -21,6 +21,10 @@ protocol EpisodesRowManager: ViewModel { extension EpisodesRowManager { + var sortedSeasons: [BaseItemDto] { + Array(seasonsEpisodes.keys).sorted(by: { $0.indexNumber ?? 0 < $1.indexNumber ?? 0 }) + } + // Also retrieves the current season episodes if available func retrieveSeasons() { TvShowsAPI.getSeasons(seriesId: item.seriesId ?? "", diff --git a/Swiftfin/Components/EpisodesRowView/EpisodesRowView.swift b/Swiftfin/Components/EpisodesRowView/EpisodesRowView.swift index 6f6831a8..1ba76a1a 100644 --- a/Swiftfin/Components/EpisodesRowView/EpisodesRowView.swift +++ b/Swiftfin/Components/EpisodesRowView/EpisodesRowView.swift @@ -29,7 +29,7 @@ struct EpisodesRowView: View where RowManager: EpisodesRowManager { } } else { Menu { - ForEach(Array(viewModel.seasonsEpisodes.keys).sorted(by: { $0.indexNumber ?? 0 < $1.indexNumber ?? 0 }), + ForEach(viewModel.sortedSeasons, id: \.self) { season in Button { viewModel.select(season: season)