mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-16 14:16:16 -08:00
fix(portals): reload Stalker categories only for a held destination
Review follow-ups (Greptile, Codex): resetCategories() reloaded the category resource, and the route session calls it on a portal switch before the destination is resolved and on teardown, so it asked the portal being left, and a failed destination lookup could let that answer repopulate the sidebar. resetCategories() now only clears; the session calls the new reloadCategories() after installing the destination, and only when a handoff had already put that playlist in the store (the owner, and so the resource params, did not change). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
278245121c
commit
c73a3e92a5
7 files changed
+84
-3
No files matched your search
@@ -397,8 +397,12 @@ Category arrays belong to `categoryPlaylistKey`, not just the content type.
|
||||
Every category reader checks that owner; a portal switch clears all four
|
||||
section caches before loading the destination. Aborted or foreign-portal
|
||||
responses (including errors and radio fallbacks) cannot write into the active
|
||||
cache. Explicit category resets reload even when the playlist object remains
|
||||
unchanged. This contract applies to collection details as well as routed
|
||||
cache. `resetCategories()` only clears: the route session calls it on a
|
||||
portal switch before the destination is resolved and on teardown, where a
|
||||
request would go to the portal being left. When a handoff had already put
|
||||
the destination in the store, the owner does not change and the resource
|
||||
would not reload by itself, so the session calls `reloadCategories()` once
|
||||
it has installed that playlist. This contract applies to collection details as well as routed
|
||||
catalogs, because both use the root Stalker store.
|
||||
|
||||
Failure-handling rule:
|
||||
|
||||
@@ -93,6 +93,9 @@ During refactor:
|
||||
- `clearSelectedItem(): void`
|
||||
- `setCategories(type: 'vod' | 'series' | 'itv' | 'radio', categories: StalkerCategoryItem[]): void`
|
||||
- `resetCategories(): void`
|
||||
Clears only; it starts no request (called on portal switches and route teardown).
|
||||
- `reloadCategories(): void`
|
||||
Refetches the current portal's categories after a reset that keeps the owner.
|
||||
- `setItvChannels(channels: StalkerItvChannel[]): void`
|
||||
- `setRadioChannels(channels: StalkerItvChannel[]): void`
|
||||
- `setSearchPhrase(phrase: string): void`
|
||||
|
||||
Reference in new issue
Block a user