@tldraw/editor
Version:
tldraw infinite canvas SDK (editor).
24 lines (21 loc) • 739 B
text/typescript
import { unsafe__withoutCapture } from '@tldraw/state'
import { useReactor } from '@tldraw/state-react'
import { tlenvReactive } from '../globals/environment'
import { useEditor } from './useEditor'
/** @internal */
export function useCoarsePointer() {
const editor = useEditor()
// When the coarse pointer state changes, update the instance state
useReactor(
'coarse pointer change',
() => {
const isCoarsePointer = tlenvReactive.get().isCoarsePointer
const isInstanceStateCoarsePointer = unsafe__withoutCapture(
() => editor.getInstanceState().isCoarsePointer
)
if (isCoarsePointer === isInstanceStateCoarsePointer) return
editor.updateInstanceState({ isCoarsePointer: isCoarsePointer })
},
[editor]
)
}