diff --git a/Sora/Views/MediaInfoView/MediaInfoView.swift b/Sora/Views/MediaInfoView/MediaInfoView.swift index ef00bc5..088a921 100644 --- a/Sora/Views/MediaInfoView/MediaInfoView.swift +++ b/Sora/Views/MediaInfoView/MediaInfoView.swift @@ -192,6 +192,12 @@ struct MediaInfoView: View { UserDefaults.standard.set(newValue.lowerBound, forKey: selectedRangeKey) } .onChange(of: selectedSeason) { newValue in + let ranges = generateRanges(for: currentEpisodeList.count) + if let validRange = ranges.first(where: { $0 == selectedRange }) { + selectedRange = validRange + } else { + selectedRange = ranges.first ?? 0.. [Range] { + let chunkSize = episodeChunkSize + var ranges: [Range] = [] + for i in stride(from: 0, to: count, by: chunkSize) { + let end = min(i + chunkSize, count) + ranges.append(i..] { + generateRanges(for: currentEpisodeList.count) + } }