Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

useBoundsHandleEvents.ts 1011B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import { useCallback, useRef } from "react"
  2. import inputs from "state/inputs"
  3. import { Edge, Corner } from "types"
  4. import state from "../state"
  5. export default function useBoundsHandleEvents(
  6. handle: Edge | Corner | "rotate"
  7. ) {
  8. const onPointerDown = useCallback(
  9. (e) => {
  10. if (e.buttons !== 1) return
  11. e.stopPropagation()
  12. e.currentTarget.setPointerCapture(e.pointerId)
  13. state.send("POINTED_BOUNDS_HANDLE", inputs.pointerDown(e, handle))
  14. },
  15. [handle]
  16. )
  17. const onPointerMove = useCallback(
  18. (e) => {
  19. if (e.buttons !== 1) return
  20. e.stopPropagation()
  21. state.send("MOVED_POINTER", inputs.pointerMove(e))
  22. },
  23. [handle]
  24. )
  25. const onPointerUp = useCallback((e) => {
  26. if (e.buttons !== 1) return
  27. e.stopPropagation()
  28. e.currentTarget.releasePointerCapture(e.pointerId)
  29. e.currentTarget.replaceWith(e.currentTarget)
  30. state.send("STOPPED_POINTING", inputs.pointerUp(e))
  31. }, [])
  32. return { onPointerDown, onPointerMove, onPointerUp }
  33. }