JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr{ gilour

File "interactable-event.ts"

Full Path: /home/markqprx/iniasli.pro/client/ui/interactions/interactable-event.ts
File size: 729 bytes
MIME-type: text/html
Charset: utf-8

import React from 'react';

type NativeEvent =
  | React.PointerEvent
  | PointerEvent
  | React.DragEvent<HTMLElement>
  | DragEvent;

export interface InteractableEvent {
  x: number;
  y: number;
  deltaX: number;
  deltaY: number;
  rect: InteractableRect;
  nativeEvent: NativeEvent;
}

export interface InteractableRect {
  left: number;
  top: number;
  width: number;
  height: number;
  angle?: number;
}

export function interactableEvent({
  e,
  rect,
  deltaX,
  deltaY,
}: {
  e: NativeEvent;
  rect: InteractableRect;
  deltaX?: number;
  deltaY?: number;
}): InteractableEvent {
  return {
    rect,
    x: e.clientX,
    y: e.clientY,
    deltaX: deltaX ?? 0,
    deltaY: deltaY ?? 0,
    nativeEvent: e,
  };
}