mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-11 19:46:16 -08:00
The Xtream and Stalker VOD detail views each carried a private copy of two behaviours: deriving the Play/Stop button state from the active external (MPV/VLC) session, and throttled persistence of the inline player position. A Play button or a resume point that behaves differently per portal is the kind of divergence users notice, so both now read from one implementation. Extracts `createExternalPlaybackButtonState` and `createInlinePlaybackPositionWriter` into portal/shared/util, and lifts the Stalker VOD download errand into its own helper. Behaviour is unchanged; the shared helpers are deliberately identical to the copies they replace. This also brings both hosts back under the 400-line ESLint limit, neither of which was baselined: vod-details.component.ts 389 -> 333 stalker-catalog-detail.component 394 -> 325 vod-details-playback.service.ts 345 -> 275 Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
31 lines
1.4 KiB
TypeScript
31 lines
1.4 KiB
TypeScript
export * from './lib/logger';
|
|
export * from './lib/category-sort';
|
|
export * from './lib/channel-sort';
|
|
export * from './lib/favorites-channel-sort';
|
|
export * from './lib/portal-catalog-detail';
|
|
export * from './lib/portal-catalog-facade';
|
|
export * from './lib/portal-external-playback';
|
|
export * from './lib/portal-player';
|
|
export * from './lib/portal-playback-positions';
|
|
export * from './lib/series-quick-start';
|
|
export * from './lib/portal-navigation-actions';
|
|
export * from './lib/portal-shell-actions';
|
|
export * from './lib/portal-collection-context';
|
|
export * from './lib/portal-collection-context.service';
|
|
export * from './lib/portal-collection-items';
|
|
export * from './lib/live-epg-panel-state';
|
|
export * from './lib/live-sidebar-state';
|
|
export * from './lib/live-layout-sidebar-state.service';
|
|
export * from './lib/keyboard';
|
|
export * from './lib/keyboard-shortcuts';
|
|
export * from './lib/remote-channel-navigation';
|
|
export * from './lib/workspace-header-context.service';
|
|
export * from './lib/workspace-view-command.types';
|
|
export * from './lib/workspace-view-command.service';
|
|
export * from './lib/navigation/portal-rail-links';
|
|
export * from './lib/navigation/portal-route.utils';
|
|
export * from './lib/navigation/workspace-portal-navigation';
|
|
export * from './lib/collection';
|
|
export * from './lib/external-playback-button-state';
|
|
export * from './lib/inline-playback-position-writer';
|