mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
45 lines
1.2 KiB
TypeScript
45 lines
1.2 KiB
TypeScript
import { ComponentMetadata } from '@/components/types'
|
|
import { videoUrls } from '@/core/utils/urls'
|
|
|
|
const entry = async () => {
|
|
const { select } = await import('@/core/spin-query')
|
|
const likeButton = await select('.ops span.like') as HTMLElement
|
|
if (!likeButton) {
|
|
return
|
|
}
|
|
likeButton.style.userSelect = 'none'
|
|
const mountEvent = (name: string, args: EventInit) => {
|
|
const event = new CustomEvent(name, args)
|
|
likeButton.dispatchEvent(event)
|
|
}
|
|
|
|
const clickInterval = 200
|
|
let click = true
|
|
likeButton.addEventListener('touchstart', e => {
|
|
e.preventDefault()
|
|
click = true
|
|
setTimeout(() => (click = false), clickInterval)
|
|
mountEvent('mousedown', e)
|
|
})
|
|
likeButton.addEventListener('touchend', e => {
|
|
e.preventDefault()
|
|
mountEvent('mouseup', e)
|
|
if (click) {
|
|
mountEvent('click', e)
|
|
}
|
|
})
|
|
}
|
|
export const component: ComponentMetadata = {
|
|
name: 'touchComboLike',
|
|
displayName: '三连触摸支持',
|
|
tags: [
|
|
componentsTags.touch,
|
|
],
|
|
enabledByDefault: navigator.maxTouchPoints > 0,
|
|
entry,
|
|
description: {
|
|
'zh-CN': '为视频页面中的三连操作 (长按点赞) 启用触摸支持.',
|
|
},
|
|
urlInclude: videoUrls,
|
|
}
|