mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-12 12:06:16 -08:00
feat(portals): add "View in portal" action to inline collection details
Details opened from the dashboard, global favorites/recent, or a portal's own favorites/recent tabs render full-width without the category sidebar, so there was no way back to the title's place in its portal. A shared `app-view-in-portal-action` renders a separate-row action below the main hero buttons. It is gated on the new `VIEW_IN_PORTAL_HANDOFF` token, provided only by the two collection-detail wrappers, so router-mounted portal details never show it without any URL sniffing. Targets come from `getUnifiedCollectionDetailNavigation()`, which unlike `getUnifiedCollectionNavigation` never degrades to a category- or section-only route: an Xtream item without a resolvable category and positive id keeps the action hidden rather than promising a jump to the title and landing in a list. Unlike the download handoff it does not pass `detailPresentation: 'provider-only'` — the item exists in the provider catalog, so the full detail is wanted. Stalker carries `stalkerReturnTo` so back returns to the originating collection. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
4bcd4bd390
commit
db1ec7cf5e
40 files changed
+716
-7
No files matched your search
@@ -39,6 +39,21 @@ Related:
|
||||
the one-shot `detailPresentation: 'provider-only'` navigation state. The
|
||||
destination keeps provider playback and whatever catalog the normal provider
|
||||
host can resolve, but hides Offline/local/download presentation.
|
||||
- Inline collection details (global favorites/recent — which also receive the
|
||||
dashboard hero and Continue Watching handoffs — plus a portal's own
|
||||
favorites/recent tabs) expose the same bridge as a separate-row hero action.
|
||||
The shared `app-view-in-portal-action` (`libs/ui/components`) renders only
|
||||
when a host provides `VIEW_IN_PORTAL_HANDOFF`; the two collection-detail
|
||||
wrappers (`xtream-collection-detail.component.ts`,
|
||||
`stalker-collection-detail.component.ts`) are the only providers, so
|
||||
router-mounted category details never show the button. Targets come from
|
||||
`getUnifiedCollectionDetailNavigation()` (`libs/portal/shared/util`), which
|
||||
never degrades to a category- or section-only route: an Xtream item without a
|
||||
resolvable category and positive item id keeps the button hidden. Unlike the
|
||||
download handoff it does NOT pass `detailPresentation: 'provider-only'` — the
|
||||
item exists in the provider catalog and the full normal detail is desired.
|
||||
The Stalker handoff carries `stalkerReturnTo` so the portal detail's back
|
||||
affordance returns to the originating collection.
|
||||
- Do not force both portals into the same browse/detail behavior unless the full
|
||||
portal detail architecture is being changed.
|
||||
|
||||
|
||||
Reference in new issue
Block a user