mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
38 lines
1,014 B
TypeScript
38 lines
1,014 B
TypeScript
import type { BaseItemDto } from '@jellyfin/sdk/lib/generated-client';
|
|
|
|
import { playbackManager } from './playbackmanager';
|
|
|
|
interface PlaybackInfo {
|
|
item: BaseItemDto;
|
|
context?: string;
|
|
}
|
|
|
|
function mirrorItem(info: PlaybackInfo, player?: unknown) {
|
|
const { item } = info;
|
|
|
|
playbackManager.displayContent({
|
|
ItemName: item.Name,
|
|
ItemId: item.Id,
|
|
ItemType: item.Type,
|
|
Context: info.context
|
|
}, player);
|
|
}
|
|
|
|
function mirrorIfEnabled(info: PlaybackInfo) {
|
|
if (info && playbackManager.enableDisplayMirroring()) {
|
|
const playerInfo = playbackManager.getPlayerInfo();
|
|
|
|
if (playerInfo && !playerInfo.isLocalPlayer && playerInfo.supportedCommands.indexOf('DisplayContent') !== -1) {
|
|
mirrorItem(info, playbackManager.getCurrentPlayer());
|
|
}
|
|
}
|
|
}
|
|
|
|
document.addEventListener('viewshow', e => {
|
|
const state = e.detail.state || {};
|
|
const { item } = state;
|
|
|
|
if (item?.ServerId) {
|
|
mirrorIfEnabled({ item });
|
|
}
|
|
});
|