mirror of
https://github.com/sussy-code/smov.git
synced 2025-01-09 17:37:40 +01:00
29 lines
706 B
TypeScript
29 lines
706 B
TypeScript
|
export type VideoPlayerEvent = "progress";
|
||
|
|
||
|
function createEventString(id: string, event: VideoPlayerEvent): string {
|
||
|
return `_vid:::${id}:::${event}`;
|
||
|
}
|
||
|
|
||
|
export function sendEvent<T>(id: string, event: VideoPlayerEvent, data: T) {
|
||
|
const evObj = new CustomEvent(createEventString(id, event), {
|
||
|
detail: data,
|
||
|
});
|
||
|
document.dispatchEvent(evObj);
|
||
|
}
|
||
|
|
||
|
export function listenEvent<T>(
|
||
|
id: string,
|
||
|
event: VideoPlayerEvent,
|
||
|
cb: (data: T) => void
|
||
|
) {
|
||
|
document.addEventListener<any>(createEventString(id, event), cb);
|
||
|
}
|
||
|
|
||
|
export function unlistenEvent<T>(
|
||
|
id: string,
|
||
|
event: VideoPlayerEvent,
|
||
|
cb: (data: T) => void
|
||
|
) {
|
||
|
document.removeEventListener<any>(createEventString(id, event), cb);
|
||
|
}
|