@aidenlx/player
Version:
Headless web components that make integrating media on the a web a breeze.
24 lines (19 loc) • 655 B
text/typescript
import { isNumber, isString, setAttribute } from '@vidstack/foundation';
import { MediaStyleController } from './MediaStyleController';
class MediaAttrsController extends MediaStyleController {
protected _handleValueChange(_, attrName: string, value: unknown) {
setAttribute(
this._host,
attrName,
isString(value) || isNumber(value) ? String(value) : !!value,
);
}
protected _handleDisconnect(_, attrName: string) {
this._host.removeAttribute(attrName);
}
}
export function bindMediaPropsToAttrs(
...params: ConstructorParameters<typeof MediaAttrsController>
) {
return new MediaAttrsController(...params);
}