mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-15 05:36:17 -08:00
fix(portals): keep the route's own resume point, and honour a closed pin
Two more from review, both variations on "selected is not playing". `vodPlaybackPosition` followed whichever copy last reported — so after an alternative played, Resume and its label described that copy's row while starting the route's stream, jumping it to a timecode nobody reached in it. It now splits: `vodPlaybackPosition` stays the last position seen (the progress bar and the switch handoff want the stream on screen), and `routePlaybackPosition` holds the route copy's own row for everything that acts on the route's stream. `pinnedSourceAwaitingPlay` skipped the pin whenever its row was active, but `isActive` means selected — the pinned row stays selected after its player is closed, so the next Play went to the route copy and ignored the stored preference until the page was reopened. It now takes `playbackLive` too. The host service crossed the 400-line cap on the way, so the four derived alternative counts moved into `vod-multi-source-counts.ts`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
b6e3a6752e
commit
7ee4c5644f
12 files changed
+187
-30
No files matched your search
@@ -425,6 +425,13 @@ was never established, so there is nothing to correct.
|
||||
|
||||
## What the primary button describes
|
||||
|
||||
Two position signals, not one. `vodPlaybackPosition` is the LAST position
|
||||
seen — whichever copy produced it — and feeds the progress bar and the switch
|
||||
handoff. `routePlaybackPosition` is the route copy's own row, and everything
|
||||
that acts on the route's stream reads that: Resume, its label, its timecode.
|
||||
Collapsing them lets an alternative's progress resume the route copy at a
|
||||
timecode nobody reached in it.
|
||||
|
||||
A pin means the button plays a copy the page did not load a position for.
|
||||
`createPrimaryActionPosition` therefore looks that copy's row up and lets it
|
||||
govern the label, the timecode and the Restart affordance — including when the
|
||||
@@ -434,7 +441,10 @@ route's own row changes nothing; the loaded position already IS that copy's.
|
||||
|
||||
## Claims about the present
|
||||
|
||||
`isActive` means "the source a switch or Play would use". Discovery sets it the
|
||||
`isActive` means "the source a switch or Play would use" — selection, not
|
||||
playback. `pinnedSourceAwaitingPlay` therefore takes `playbackLive` as well:
|
||||
a pinned row stays selected after its player is closed, and skipping the pin
|
||||
on selection alone would send the next Play to the route copy. Discovery sets it the
|
||||
moment the page opens, and it survives closing the player — so it cannot, on
|
||||
its own, back a statement in the present tense.
|
||||
|
||||
|
||||
Reference in new issue
Block a user