Seasons and Episodes

@if (selectedSeason) { }
@if (selectedSeason && !showSeasonEmptyState()) {
grid_view view_list
}
@if (isLoading()) {
} @else if (showSeriesEmptyState()) {

No episodes available

This series is listed by your provider, but no seasons or episodes are available to play.

} @else if (!selectedSeason) {
@for ( season of seasons() | keyvalue: compareSeasons; track $index ) { }
} @else if (showSeasonEmptyState()) {

This season is empty

This season is listed by your provider, but no playable episodes are available.

} @else { @if (viewMode() === 'grid') {
@for (episode of seasons()[selectedSeason]; track $index) { @let episodeInfo = getEpisodeInfo(episode);
@if (episodeInfo?.movie_image) { Episode thumbnail } @else {
play_circle_outline
} @if (getEpisodeProgress(episode) > 0) { @if ( getEpisodePositionText(episode); as time ) {
{{ time }}
} }
@if (isElectron()) { @if (isEpisodeDownloaded(episode)) { } @else if ( isEpisodeDownloading(episode) ) { } @else { } }
@if (isEpisodeLaunching(episode)) { } @else { {{ isEpisodeActiveExternal(episode) ? 'equalizer' : 'play_arrow' }} }
{{ episode.episode_num }}

{{ episode.episode_num }}. {{ episode.title }}

@if (episodeInfo?.plot) {

{{ episodeInfo?.plot }}

} @if (episodeInfo?.duration) { {{ episodeInfo?.duration }} }
}
} @else {
@for (episode of seasons()[selectedSeason]; track $index) { @let episodeInfo = getEpisodeInfo(episode);
{{ episode.episode_num }}

{{ episode.title }} @if (isEpisodeWatched(episode)) { check_circle }

@if (episodeInfo?.duration) { {{ episodeInfo?.duration }} } @if ( getEpisodePositionText(episode); as time ) { {{ time }} }
@if (episodeInfo?.plot) {

{{ episodeInfo?.plot }}

} @if (getEpisodeProgress(episode) > 0) {
}
@if (isElectron()) { @if (isEpisodeDownloaded(episode)) { } @else if (isEpisodeDownloading(episode)) { } @else { } }
}
} }