Files
iptvnator/src/app/shared/components/favorites-layout/favorites-layout.component.html
T
4gray f1dfef6d9f feat(xtream): improvements in xtream portal UI
- Replaced the existing favorites component HTML structure with a new app-favorites-layout component for better organization and maintainability.
- Removed unused styles from favorites.component.scss.
- Updated favorites.component.ts to utilize the new layout component and streamline imports.
- Enhanced detail-view styles for improved responsiveness and layout consistency.
- Adjusted navigation component to conditionally render elements based on playlist type.
- Introduced a new NavigationItem interface for better type safety in navigation items.
- Refactored search results component to utilize new search-form and search-result-item components for cleaner code and separation of concerns.
- Updated vod-details component to handle portal ID retrieval more robustly.
- Made various style adjustments across components for improved UI consistency.
2025-09-08 18:12:16 +02:00

83 lines
3.0 KiB
HTML

<div class="sidebar">
<div class="sidebar-header">
<button mat-icon-button disabled>
<mat-icon>list</mat-icon>
</button>
<h2>{{ 'PORTALS.ALL_CATEGORIES' | translate }}</h2>
</div>
<app-category-view
[items]="categories()"
[selectedCategoryId]="selectedCategoryId()"
(categoryClicked)="setCategoryId($event.category_id)"
/>
</div>
<div class="main-content">
<div class="content-header">
<h2>
<button mat-icon-button disabled>
<mat-icon>movie</mat-icon>
</button>
{{
(titleTranslationString() | translate) +
' (' +
selectedCategoryId() +
')'
}}
</h2>
</div>
<div class="scrollable-content">
@if (favorites().length) {
<div class="items-grid">
@for (item of favorites(); track $index) {
<mat-card class="item-card" (click)="openFavorite(item)">
<img
[src]="
item.poster_url ||
item.cover ||
'assets/default-' +
selectedCategoryId() +
'.png'
"
(error)="
$event.target.src =
'./assets/images/default-poster.png'
"
[alt]="item.title"
class="item-image"
/>
<mat-card-content>
<h3>
{{ item?.title || item?.details?.info?.name }}
</h3>
<p class="added-date">
Added:
{{ item?.added_at | date: 'd MMMM, y, HH:MM' }}
</p>
</mat-card-content>
<button
mat-icon-button
color="warn"
class="favorite-button"
[matTooltip]="
'CHANNELS.REMOVE_FAVORITE' | translate
"
(click)="
$event.stopPropagation(); removeFavorite(item)
"
>
<mat-icon>delete</mat-icon>
</button>
</mat-card>
}
</div>
} @else {
<div class="no-items">
<mat-icon>favorite_border</mat-icon>
<p>No items in the selected category</p>
</div>
}
</div>
<app-mpv-player-bar />
</div>