'use client' import type React from 'react' export type DocumentPointer = { x: number; y: number } export type PointerEventLike = React.PointerEvent | React.MouseEvent | MouseEvent export type PointerToDocumentFn = (event: PointerEventLike) => DocumentPointer | null export function usePointerToDocument( scaleRatio: number, ref: React.RefObject, ): PointerToDocumentFn { return (event: PointerEventLike) => { const container = ref.current if (!container) return null const rect = container.getBoundingClientRect() const x = (event.clientX - rect.left) / scaleRatio const y = (event.clientY - rect.top) / scaleRatio if (Number.isNaN(x) || Number.isNaN(y)) return null return { x, y } } }