export function dragDetection(htmlElement: HTMLElement, callback: () => {}) {

    let isDown = false
    let threshold = 5
    let start = null

    htmlElement.addEventListener("pointerdown", (e) => {
        isDown = true
        start = { x: e.clientX, y: e.clientY }
    })

    htmlElement.addEventListener("pointermove", (e) => {
        if (!isDown || !start) return
        const dx = e.clientX - start.x
        const dy = e.clientY - start.y
        if (Math.hypot(dx, dy) > threshold) {
            callback()
            isDown = false
        }
    })

    htmlElement.addEventListener("pointerup", () => {
        isDown = false
        start = null
    })

    htmlElement.addEventListener("pointerleave", () => {
        isDown = false
        start = null
    })

    return {
        destroy: () => {
        },
    }
}
