mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
[组件-自动移出稍后再看] 优化事件监听逻辑,防止重复监听导致重复调用接口
This commit is contained in:
parent
722123937b
commit
304b1aaa9c
@ -4,6 +4,7 @@ import { videoUrls, watchlaterUrls } from '@/core/utils/urls'
|
||||
import { playerAgent } from '@/components/video/player-agent'
|
||||
import { getWatchlaterList, toggleWatchlater } from '@/components/video/watchlater'
|
||||
|
||||
let listener: (() => Promise<void>) | null = null
|
||||
export const component = defineComponentMetadata({
|
||||
name: 'autoRemoveWatchlater',
|
||||
displayName: '自动移出稍后再看',
|
||||
@ -12,12 +13,16 @@ export const component = defineComponentMetadata({
|
||||
entry: () => {
|
||||
videoChange(async ({ aid }) => {
|
||||
const videoElement = await playerAgent.query.video.element()
|
||||
videoElement.addEventListener('ended', async () => {
|
||||
if (listener !== null) {
|
||||
videoElement.removeEventListener('ended', listener)
|
||||
}
|
||||
listener = async () => {
|
||||
const list = await getWatchlaterList()
|
||||
if (list.includes(parseInt(aid))) {
|
||||
await toggleWatchlater(aid)
|
||||
}
|
||||
})
|
||||
}
|
||||
videoElement.addEventListener('ended', listener)
|
||||
})
|
||||
},
|
||||
})
|
||||
|
||||
Loading…
Reference in New Issue
Block a user