mirror of
https://github.com/webadderallorg/Recordly.git
synced 2026-10-06 12:31:28 +00:00
40 lines
940 B
TypeScript
40 lines
940 B
TypeScript
export interface HudInteractiveBounds {
|
|
left: number;
|
|
top: number;
|
|
right: number;
|
|
bottom: number;
|
|
}
|
|
|
|
export function mergeHudInteractiveBounds(
|
|
bounds: Array<HudInteractiveBounds | null | undefined>,
|
|
): HudInteractiveBounds | null {
|
|
const presentBounds = bounds.filter((value): value is HudInteractiveBounds => Boolean(value));
|
|
if (presentBounds.length === 0) {
|
|
return null;
|
|
}
|
|
|
|
return presentBounds.reduce((merged, current) => ({
|
|
left: Math.min(merged.left, current.left),
|
|
top: Math.min(merged.top, current.top),
|
|
right: Math.max(merged.right, current.right),
|
|
bottom: Math.max(merged.bottom, current.bottom),
|
|
}));
|
|
}
|
|
|
|
export function shouldRestoreHudMousePassthroughAfterDrag(
|
|
bounds: HudInteractiveBounds | null,
|
|
clientX: number,
|
|
clientY: number,
|
|
): boolean {
|
|
if (!bounds) {
|
|
return true;
|
|
}
|
|
|
|
return (
|
|
clientX < bounds.left ||
|
|
clientX > bounds.right ||
|
|
clientY < bounds.top ||
|
|
clientY > bounds.bottom
|
|
);
|
|
}
|