@zag-js/dom-query
Version:
The dom helper library for zag.js machines
34 lines (32 loc) • 877 B
JavaScript
import "./chunk-QZ7TP4HQ.mjs";
// src/pointer-lock.ts
import { addDomEvent } from "./event.mjs";
function requestPointerLock(doc, fn) {
const body = doc.body;
const supported = "pointerLockElement" in doc || "mozPointerLockElement" in doc;
const isLocked = () => !!doc.pointerLockElement;
function onPointerChange() {
fn?.(isLocked());
}
function onPointerError(event) {
if (isLocked()) fn?.(false);
console.error("PointerLock error occurred:", event);
doc.exitPointerLock();
}
if (!supported) return;
try {
body.requestPointerLock();
} catch {
}
const cleanup = [
addDomEvent(doc, "pointerlockchange", onPointerChange, false),
addDomEvent(doc, "pointerlockerror", onPointerError, false)
];
return () => {
cleanup.forEach((cleanup2) => cleanup2());
doc.exitPointerLock();
};
}
export {
requestPointerLock
};