UNPKG

use-keybinds

Version:

Lightweight keybind library for React

3 lines 1.86 kB
"use client" "use strict";var x=Object.create;var c=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var L=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var h=(n,e)=>{for(var t in e)c(n,t,{get:e[t],enumerable:!0})},E=(n,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of P(e))!w.call(n,i)&&i!==t&&c(n,i,{get:()=>e[i],enumerable:!(o=T(e,i))||o.enumerable});return n};var A=(n,e,t)=>(t=n!=null?x(L(n)):{},E(e||!n||!n.__esModule?c(t,"default",{value:n,enumerable:!0}):t,n)),F=n=>E(c({},"__esModule",{value:!0}),n);var q={};h(q,{default:()=>j});module.exports=F(q);var b=require("react");var r=require("react"),N=()=>{let[n,e]=(0,r.useState)(typeof window<"u"?document.activeElement:null),t=(0,r.useCallback)(()=>{e(document.activeElement)},[]),o=(0,r.useCallback)(()=>{e(null)},[]);return(0,r.useEffect)(()=>(addEventListener("focusin",t),addEventListener("focusout",o),()=>{removeEventListener("focusin",t),removeEventListener("focusout",o)}),[t,o]),n},g=N;var y=A(require("react"));var a=(n,e)=>(e?"isSequential-":"")+n.join("");var p=(0,y.createContext)({keybinds:{},combinationsToKeybindKey:{}});var R=(n={})=>{let e=g(),{combinationsToKeybindKey:t}=(0,b.useContext)(p);(0,b.useEffect)(()=>{let o=new Set([]),i=new Set([]),u=()=>{o.clear(),i.clear()},v=d=>Object.keys(t).join("").includes(d),l=d=>{if(e&&["INPUT","TEXTAREA"].includes(e.tagName))return;let s=d.code;v(s)?(o.add(s),i.add(s),setTimeout(()=>i.delete(s),4e3)):u();let S=a([...o],!1),C=a([...i],!0),k=t[S],K=t[C];K&&u();let f=n[K??k];f&&(i.clear(),f(d))},m=d=>{if(e&&["INPUT","TEXTAREA"].includes(e.tagName))return;let s=d.code;o.delete(s)};return addEventListener("keydown",l),addEventListener("keyup",m),()=>{removeEventListener("keydown",l),removeEventListener("keyup",m)}},[n,t,e])},j=R; //# sourceMappingURL=useKeybinds.js.map