处理vue子组件emit事件警告
Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
parent
c55b75686e
commit
83a814c386
@ -122,6 +122,8 @@ const MEDIA_EVENTS = [
|
||||
'waiting',
|
||||
] as const
|
||||
|
||||
type MediaEventName = typeof MEDIA_EVENTS[number]
|
||||
|
||||
let activeMutex: PlayerExpose | null = null
|
||||
|
||||
const props = defineProps({
|
||||
@ -186,14 +188,39 @@ const props = defineProps({
|
||||
},
|
||||
})
|
||||
|
||||
const emit = defineEmits<{
|
||||
(event: 'update:music', value: PlayerMusicItem): void
|
||||
(event: 'update:muted', value: boolean): void
|
||||
(event: 'update:volume', value: number): void
|
||||
(event: 'update:shuffle', value: boolean): void
|
||||
(event: 'update:repeat', value: RepeatValue): void
|
||||
(event: string, payload?: Event): void
|
||||
}>()
|
||||
const emit = defineEmits([
|
||||
'update:music',
|
||||
'update:muted',
|
||||
'update:volume',
|
||||
'update:shuffle',
|
||||
'update:repeat',
|
||||
'abort',
|
||||
'canplay',
|
||||
'canplaythrough',
|
||||
'durationchange',
|
||||
'emptied',
|
||||
'encrypted',
|
||||
'ended',
|
||||
'error',
|
||||
'interruptbegin',
|
||||
'interruptend',
|
||||
'loadeddata',
|
||||
'loadedmetadata',
|
||||
'loadstart',
|
||||
'mozaudioavailable',
|
||||
'pause',
|
||||
'play',
|
||||
'playing',
|
||||
'progress',
|
||||
'ratechange',
|
||||
'seeked',
|
||||
'seeking',
|
||||
'stalled',
|
||||
'suspend',
|
||||
'timeupdate',
|
||||
'volumechange',
|
||||
'waiting',
|
||||
] as const)
|
||||
|
||||
const audio = ref<HTMLAudioElement | null>(null)
|
||||
const internalMusic = ref<PlayerMusicItem>(props.music)
|
||||
@ -562,7 +589,7 @@ function initAudio() {
|
||||
media.volume = props.volume
|
||||
|
||||
MEDIA_EVENTS.forEach((eventName) => {
|
||||
media.addEventListener(eventName, (event) => emit(eventName, event))
|
||||
media.addEventListener(eventName, (event) => emitMediaEvent(eventName, event))
|
||||
})
|
||||
|
||||
media.addEventListener('play', onAudioPlay)
|
||||
@ -585,6 +612,10 @@ function setSelfAdaptingTheme(color: string | null) {
|
||||
selfAdaptingTheme.value = color
|
||||
}
|
||||
|
||||
function emitMediaEvent<T extends MediaEventName>(eventName: T, event: Event) {
|
||||
emit(eventName, event)
|
||||
}
|
||||
|
||||
watch(() => props.music, (music) => {
|
||||
internalMusic.value = music
|
||||
})
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user