UNPKG

material-ui-popup-state

Version:

easiest way to create menus, popovers, and poppers with material-ui

2 lines (1 loc) 1.32 kB
{"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":[]}