Files
mtdb_movie/common/resources/client/ui/interactions/interactable-event.ts
maher 703f50a09d
Some checks failed
Build / run (push) Has been cancelled
first commit
2025-10-29 11:42:25 +01:00

46 lines
729 B
TypeScript
Executable File

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,
};
}