fix(core): fix media proxy for React (#1169)

This commit is contained in:
Wesley Luyten
2026-03-31 20:35:33 -05:00
committed by GitHub
parent c21de24813
commit c0a3277f4c
2 changed files with 29 additions and 1 deletions
+21 -1
View File
@@ -16,7 +16,7 @@ export const ProxyMixin = <T extends EventTarget>(
PrimaryClass: AnyConstructor<T>,
...AdditionalClasses: AnyConstructor<EventTarget>[]
) => {
class MediaProxy extends EventTarget {
class MediaProxy {
#target: EventTarget | null = null;
get target() {
@@ -47,6 +47,26 @@ export const ProxyMixin = <T extends EventTarget>(
if (!this.#target) return;
this.#target = null;
}
addEventListener(
type: string,
listener: EventListenerOrEventListenerObject,
options?: boolean | AddEventListenerOptions
): void {
this.#target?.addEventListener(type, listener, options);
}
removeEventListener(
type: string,
listener: EventListenerOrEventListenerObject,
options?: boolean | EventListenerOptions
): void {
this.#target?.removeEventListener(type, listener, options);
}
dispatchEvent(event: Event): boolean {
return this.#target?.dispatchEvent(event) ?? false;
}
}
for (const Class of [PrimaryClass, ...AdditionalClasses]) {
@@ -47,6 +47,14 @@ export class NativeHlsMediaDelegate extends EventTarget {
attach(target: HTMLMediaElement) {
this.#target = target;
if (this.preload !== this.#target.preload) {
this.#target.preload = this.preload;
}
if (this.src !== this.#target.src) {
this.#target.src = this.src;
}
}
detach() {