dispatch ui events
This commit is contained in:
@@ -28,5 +28,6 @@
|
|||||||
});
|
});
|
||||||
window.$c = component;
|
window.$c = component;
|
||||||
component.addEventListener('finish', () => console.log('finish'));
|
component.addEventListener('finish', () => console.log('finish'));
|
||||||
|
// component.addEventListener('ui-update-progress', console.log);
|
||||||
</script>
|
</script>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -26,6 +26,9 @@
|
|||||||
export let tags: Record<string, string> = {};
|
export let tags: Record<string, string> = {};
|
||||||
|
|
||||||
let currentTime = 0;
|
let currentTime = 0;
|
||||||
|
$: {
|
||||||
|
dispatch('ui-update-current-time', { payload: currentTime });
|
||||||
|
}
|
||||||
let timer: number | null = null;
|
let timer: number | null = null;
|
||||||
let playerState: 'playing' | 'paused' | 'live';
|
let playerState: 'playing' | 'paused' | 'live';
|
||||||
let speedState: 'normal' | 'skipping';
|
let speedState: 'normal' | 'skipping';
|
||||||
@@ -39,6 +42,7 @@
|
|||||||
$: {
|
$: {
|
||||||
const percent = Math.min(1, currentTime / meta.totalTime);
|
const percent = Math.min(1, currentTime / meta.totalTime);
|
||||||
percentage = `${100 * percent}%`;
|
percentage = `${100 * percent}%`;
|
||||||
|
dispatch('ui-update-progress', { payload: percent });
|
||||||
}
|
}
|
||||||
type CustomEvent = {
|
type CustomEvent = {
|
||||||
name: string;
|
name: string;
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
toggle: () => void;
|
toggle: () => void;
|
||||||
setSpeed: (speed: number) => void;
|
setSpeed: (speed: number) => void;
|
||||||
toggleSkipInactive: () => void;
|
toggleSkipInactive: () => void;
|
||||||
};
|
} & Controller;
|
||||||
|
|
||||||
let style: string;
|
let style: string;
|
||||||
$: style = inlineCss({
|
$: style = inlineCss({
|
||||||
@@ -65,8 +65,18 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
export const addEventListener = (event: string, handler: () => unknown) => {
|
export const addEventListener = (
|
||||||
|
event: string,
|
||||||
|
handler: (detail: unknown) => unknown,
|
||||||
|
) => {
|
||||||
replayer.on(event, handler);
|
replayer.on(event, handler);
|
||||||
|
switch (event) {
|
||||||
|
case 'ui-update-current-time':
|
||||||
|
case 'ui-update-progress':
|
||||||
|
controller.$on(event, ({ detail }) => handler(detail));
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
export const addEvent = (event: eventWithTime) => {
|
export const addEvent = (event: eventWithTime) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user