mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-11 02:46:16 -08:00
The "Live now on your favorites" rail no longer reuses the 2:3 poster card built for movies. TV station logos are typically 100–256px square, so inflating them into portrait cards wastes most of the height and hides the data users actually care about (what's airing right now). Introduce a `layout: 'cover' | 'channel'` input on DashboardRailComponent. The new channel layout is a wider, much shorter card: logo + channel name + current program title + LIVE chip + progress bar + time range. Current programs are lazy-loaded via EpgService.getCurrentProgramsForChannels (already batched + 60s-cached at the service), keyed by the recent item's display name — works out of the box for M3U sources whose XMLTV channels resolve through the tvg-id → tvg-name → name fallback chain. A 30s tick keeps the progress bar fresh between program boundaries. The card renders gracefully without EPG enrichment (idle progress bar, no program title) so Xtream/Stalker live items without an XMLTV side channel still look fine. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>