Skip to content

useCanvasInput

useCanvasInput() подключает взаимодействия указателя и мыши к холсту редактора.

Обрабатывает:

  • выделение
  • перетаскивание
  • изменение размера
  • поворот
  • прокрутку (panning)
  • потоки рисования пером
  • взаимодействие при редактировании текста
  • хит-тестирование с учётом области видимости

Использование

Этот компосабл обычно используется вместе с useCanvas() и хелперами хит-тестирования от рендерера.

ts
useCanvasInput(
  canvasRef,
  editor,
  hitTestSectionTitle,
  hitTestComponentLabel,
  hitTestFrameTitle,
)

Базовый пример

ts
const canvas = useCanvas(canvasRef, editor)

useCanvasInput(
  canvasRef,
  editor,
  canvas.hitTestSectionTitle,
  canvas.hitTestComponentLabel,
  canvas.hitTestFrameTitle,
)

Практические примеры

Отслеживание движения курсора в пространстве холста

ts
useCanvasInput(
  canvasRef,
  editor,
  hitTestSectionTitle,
  hitTestComponentLabel,
  hitTestFrameTitle,
  (cx, cy) => {
    console.log(cx, cy)
  },
)

Примечания

Этот компосабл более низкоуровневый, чем большинство логики панелей. Лучше всего подходит для оболочек редактора и контейнеров холста.

Связанные API

Released under the MIT License.