UNPKG

@tldraw/editor

Version:

tldraw infinite canvas SDK (editor).

59 lines (58 loc) 2.47 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var useCoarsePointer_exports = {}; __export(useCoarsePointer_exports, { useCoarsePointer: () => useCoarsePointer }); module.exports = __toCommonJS(useCoarsePointer_exports); var import_react = require("react"); var import_environment = require("../globals/environment"); var import_useEditor = require("./useEditor"); function useCoarsePointer() { const editor = (0, import_useEditor.useEditor)(); (0, import_react.useEffect)(() => { let isCoarse = editor.getInstanceState().isCoarsePointer; const handlePointerDown = (e) => { const isCoarseEvent = e.pointerType !== "mouse"; if (isCoarse === isCoarseEvent) return; isCoarse = isCoarseEvent; editor.updateInstanceState({ isCoarsePointer: isCoarseEvent }); }; window.addEventListener("pointerdown", handlePointerDown, { capture: true }); const mql = window.matchMedia && window.matchMedia("(any-pointer: coarse)"); const isForcedFinePointer = import_environment.tlenv.isFirefox && !import_environment.tlenv.isAndroid && !import_environment.tlenv.isIos; const handleMediaQueryChange = () => { const next = isForcedFinePointer ? false : mql.matches; if (isCoarse !== next) return; isCoarse = next; editor.updateInstanceState({ isCoarsePointer: next }); }; if (mql) { mql.addEventListener("change", handleMediaQueryChange); handleMediaQueryChange(); } return () => { window.removeEventListener("pointerdown", handlePointerDown, { capture: true }); if (mql) { mql.removeEventListener("change", handleMediaQueryChange); } }; }, [editor]); } //# sourceMappingURL=useCoarsePointer.js.map