mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-13 20:56:19 -08:00
- Added `VodDetailsRouteComponent` to handle VOD details with route parameters. - Refactored existing `VodDetailsComponent` to use a unified structure for Xtream and Stalker portals. - Enhanced VOD details display with normalized metadata and improved playback position handling. - Integrated resizable sidebar functionality in main container and live stream layout components. - Updated routing to use the new VOD details route component. - Improved favorite toggling and download handling in VOD details. - Adjusted styles for responsive sidebar and grid layouts.
90 lines
3.1 KiB
HTML
90 lines
3.1 KiB
HTML
<app-navigation-bar
|
|
[breadcrumbs]="breadcrumbs"
|
|
[contentType]="selectedContentType"
|
|
[showCategories]="currentLayout !== 'error-view'"
|
|
(breadcrumbClicked)="breadcrumbClicked($event)"
|
|
(contentTypeChanged)="changeContentType($event)"
|
|
(searchTextChanged)="setSearchPhrase($event)"
|
|
(favoritesClicked)="favoritesClicked()"
|
|
[searchVisible]="
|
|
currentLayout === 'category' || currentLayout === 'category_content'
|
|
"
|
|
[sortVisible]="currentLayout === 'category_content'"
|
|
[favoriteVisible]="
|
|
currentLayout === 'category_content' ||
|
|
currentLayout === 'live-stream-favorites'
|
|
"
|
|
[contentTypeNavigationItems]="navigationContentTypes"
|
|
[activeLiveStream]="activeLiveStream"
|
|
[favoritesLiveStream$]="favoritesLiveStream$"
|
|
(addToFavoritesClicked)="addToFavorites($event)"
|
|
(removeFromFavoritesClicked)="removeFromFavorites($event)"
|
|
/>
|
|
|
|
@if (isLoading) {
|
|
<mat-spinner />
|
|
} @else {
|
|
@switch (currentLayout) {
|
|
@case ('error-view') {
|
|
<app-playlist-error-view
|
|
[title]="this.errorViewInfo.title | translate"
|
|
[description]="this.errorViewInfo.message | translate"
|
|
/>
|
|
}
|
|
@case ('category') {
|
|
<app-category-view
|
|
(categoryClicked)="categoryClicked($event)"
|
|
[items]="items"
|
|
/>
|
|
}
|
|
@case ('category_content') {
|
|
@if (selectedContentType === 'itv') {
|
|
<app-live-stream-layout
|
|
[channels]="items"
|
|
[player]="player"
|
|
[streamUrl]="streamUrl"
|
|
[epgItems]="epgItems"
|
|
[activeLiveStream]="activeLiveStream"
|
|
(itemClicked)="itemClicked($event)"
|
|
/>
|
|
} @else {
|
|
<app-category-content-view
|
|
[items]="items"
|
|
(itemClicked)="itemClicked($event)"
|
|
/>
|
|
}
|
|
}
|
|
@case ('vod-details') {
|
|
<app-vod-details
|
|
[item]="getVodDetailsItem()"
|
|
(playClicked)="onVodPlay($event)"
|
|
(favoriteToggled)="onVodFavoriteToggled($event)"
|
|
/>
|
|
}
|
|
@case ('serie-details') {
|
|
<app-serial-details
|
|
[item]="$any(vodDetails)"
|
|
[seriesId]="contentId"
|
|
(playClicked)="playEpisode($event)"
|
|
(addToFavoritesClicked)="addToFavorites($event)"
|
|
(removeFromFavoritesClicked)="removeFromFavorites($event)"
|
|
/>
|
|
}
|
|
@case ('favorites') {
|
|
<app-category-content-view
|
|
[items]="favorites$ | async"
|
|
(itemClicked)="itemClicked($event)"
|
|
/>
|
|
}
|
|
@case ('live-stream-favorites') {
|
|
<app-live-stream-layout
|
|
[channels]="favoritesLiveStream$ | async"
|
|
[player]="player"
|
|
[streamUrl]="streamUrl"
|
|
[epgItems]="epgItems"
|
|
(itemClicked)="itemClicked($event)"
|
|
/>
|
|
}
|
|
}
|
|
}
|