refactor(core): airplay button (#1614)

This commit is contained in:
Santiago Puppo
2026-06-03 13:54:28 -07:00
committed by GitHub
parent 127443aaa2
commit 24a78d253a
40 changed files with 314 additions and 198 deletions
@@ -2,7 +2,7 @@
// elements used by the minimal skin without creating a skin element. Use
// this entry when building an ejected (light DOM) player layout for live
// HLS / DASH streams.
import { AirplayButtonElement } from '@/ui/airplay-button/airplay-button-element';
import { AirPlayButtonElement } from '@/ui/airplay-button/airplay-button-element';
import { MediaContainerElement } from '../../media/container-element';
import { BufferingIndicatorElement } from '../../ui/buffering-indicator/buffering-indicator-element';
import { CaptionsButtonElement } from '../../ui/captions-button/captions-button-element';
@@ -45,7 +45,7 @@ defineVolumeSlider();
defineTime();
// Standalone elements.
safeDefine(AirplayButtonElement);
safeDefine(AirPlayButtonElement);
safeDefine(BufferingIndicatorElement);
safeDefine(CaptionsButtonElement);
safeDefine(CastButtonElement);
+2 -2
View File
@@ -1,7 +1,7 @@
// Registers the live video player, container, and all video UI custom
// elements without creating a skin element. Use this entry when building an
// ejected (light DOM) player layout for live HLS / DASH streams.
import { AirplayButtonElement } from '@/ui/airplay-button/airplay-button-element';
import { AirPlayButtonElement } from '@/ui/airplay-button/airplay-button-element';
import { MediaContainerElement } from '../../media/container-element';
import { BufferingIndicatorElement } from '../../ui/buffering-indicator/buffering-indicator-element';
import { CaptionsButtonElement } from '../../ui/captions-button/captions-button-element';
@@ -44,7 +44,7 @@ defineVolumeSlider();
defineTime();
// Standalone elements.
safeDefine(AirplayButtonElement);
safeDefine(AirPlayButtonElement);
safeDefine(BufferingIndicatorElement);
safeDefine(CaptionsButtonElement);
safeDefine(CastButtonElement);
@@ -1,10 +1,10 @@
import { AirplayButtonElement } from '../../ui/airplay-button/airplay-button-element';
import { AirPlayButtonElement } from '../../ui/airplay-button/airplay-button-element';
import { safeDefine } from '../safe-define';
safeDefine(AirplayButtonElement);
safeDefine(AirPlayButtonElement);
declare global {
interface HTMLElementTagNameMap {
[AirplayButtonElement.tagName]: AirplayButtonElement;
[AirPlayButtonElement.tagName]: AirPlayButtonElement;
}
}
+2 -2
View File
@@ -3,7 +3,7 @@
// when building an ejected (light DOM) player layout.
import { MediaContainerElement } from '../../media/container-element';
import { AirplayButtonElement } from '../../ui/airplay-button/airplay-button-element';
import { AirPlayButtonElement } from '../../ui/airplay-button/airplay-button-element';
import { BufferingIndicatorElement } from '../../ui/buffering-indicator/buffering-indicator-element';
import { CaptionsButtonElement } from '../../ui/captions-button/captions-button-element';
import { CastButtonElement } from '../../ui/cast-button/cast-button-element';
@@ -50,7 +50,7 @@ defineTime();
defineMenu();
// Standalone elements.
safeDefine(AirplayButtonElement);
safeDefine(AirPlayButtonElement);
safeDefine(BufferingIndicatorElement);
safeDefine(CaptionsButtonElement);
safeDefine(CastButtonElement);
+2 -2
View File
@@ -2,7 +2,7 @@
// without creating a skin element. Use this entry when building an ejected
// (light DOM) player layout.
import { MediaContainerElement } from '../../media/container-element';
import { AirplayButtonElement } from '../../ui/airplay-button/airplay-button-element';
import { AirPlayButtonElement } from '../../ui/airplay-button/airplay-button-element';
import { BufferingIndicatorElement } from '../../ui/buffering-indicator/buffering-indicator-element';
import { CaptionsButtonElement } from '../../ui/captions-button/captions-button-element';
import { CastButtonElement } from '../../ui/cast-button/cast-button-element';
@@ -51,7 +51,7 @@ defineTime();
defineMenu();
// Standalone elements.
safeDefine(AirplayButtonElement);
safeDefine(AirPlayButtonElement);
safeDefine(BufferingIndicatorElement);
safeDefine(CaptionsButtonElement);
safeDefine(CastButtonElement);
+1 -1
View File
@@ -25,7 +25,7 @@ export * from './store/media-attach-mixin';
export * from './store/provider-mixin';
export * from './store/types';
// UI Components
export { AirplayButtonElement } from './ui/airplay-button/airplay-button-element';
export { AirPlayButtonElement } from './ui/airplay-button/airplay-button-element';
export { AlertDialogCloseElement } from './ui/alert-dialog/alert-dialog-close-element';
export { AlertDialogDescriptionElement } from './ui/alert-dialog/alert-dialog-description-element';
export { AlertDialogElement } from './ui/alert-dialog/alert-dialog-element';
@@ -1,15 +1,15 @@
import { AirplayButtonCore, AirplayButtonDataAttrs, type MediaRemotePlaybackState } from '@videojs/core';
import { AirPlayButtonCore, AirPlayButtonDataAttrs, type MediaRemotePlaybackState } from '@videojs/core';
import { selectRemotePlayback } from '@videojs/core/dom';
import { playerContext } from '../../player/context';
import { PlayerController } from '../../player/player-controller';
import { MediaButtonElement } from '../media-button-element';
export class AirplayButtonElement extends MediaButtonElement<AirplayButtonCore> {
export class AirPlayButtonElement extends MediaButtonElement<AirPlayButtonCore> {
static readonly tagName = 'media-airplay-button';
protected readonly core = new AirplayButtonCore();
protected readonly stateAttrMap = AirplayButtonDataAttrs;
protected readonly core = new AirPlayButtonCore();
protected readonly stateAttrMap = AirPlayButtonDataAttrs;
protected readonly mediaState = new PlayerController(this, playerContext, selectRemotePlayback);
protected activate(state: MediaRemotePlaybackState): void {