mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-09 17:36:15 -08:00
PortalChannelsListComponent renders a virtual-scrolled channel list (Xtream live/VOD/series, can be 1000+ items). It was using default change detection, so every CD cycle in the parent tree (EPG ticks, progress updates) re-checked every binding. Switch to OnPush — the existing cdr.detectChanges() calls already cover the async update paths, and signal-based state marks for check automatically. Replace track $index with track program.start in two EPG @for loops (epg-list, multi-epg-container search results). $index causes Angular to re-create DOM nodes whenever the list reorders (e.g. on EPG refresh or timezone correction). program.start is the ISO datetime — unique per program within a channel and stable. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Entire-Checkpoint: 3d6901072049