{"version":3,"file":"useEvent.mjs","names":["React","useEvent","handler","window","handlerRef","useRef","useLayoutEffect","current","useCallback","args","_handlerRef$current","call"],"sources":["src/useEvent.ts"],"sourcesContent":["import * as React from 'react'\n\nexport function useEvent<Fn extends (...args: any[]) => any>(handler: Fn): Fn {\n  // istanbul ignore next\n  if (typeof window === 'undefined') {\n    // useLayoutEffect doesn't work on the server side, don't bother\n    // trying to make callback functions stable\n    return handler\n  }\n\n  const handlerRef = React.useRef<Fn | null>(null)\n\n  React.useLayoutEffect(() => {\n    handlerRef.current = handler\n  })\n\n  return React.useCallback((...args: any[]): any => {\n    handlerRef.current?.(...args)\n  }, []) as Fn\n}\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,OAAO,SAASC,QAAQA,CAAqCC,OAAW,EAAM;EAC5E;EACA,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;IACjC;IACA;IACA,OAAOD,OAAO;EAChB;EAEA,MAAME,UAAU,GAAGJ,KAAK,CAACK,MAAM,CAAY,IAAI,CAAC;EAEhDL,KAAK,CAACM,eAAe,CAAC,MAAM;IAC1BF,UAAU,CAACG,OAAO,GAAGL,OAAO;EAC9B,CAAC,CAAC;EAEF,OAAOF,KAAK,CAACQ,WAAW,CAAC,CAAC,GAAGC,IAAW,KAAU;IAAA,IAAAC,mBAAA;IAChD,CAAAA,mBAAA,GAAAN,UAAU,CAACG,OAAO,cAAAG,mBAAA,eAAlBA,mBAAA,CAAAC,IAAA,CAAAP,UAAU,EAAW,GAAGK,IAAI,CAAC;EAC/B,CAAC,EAAE,EAAE,CAAC;AACR","ignoreList":[]}
