UNPKG

react-naver-maps

Version:

React Navermaps API integration for modern development.

1 lines 2.03 kB
{"version":3,"sources":["../src/listener.tsx"],"sourcesContent":["import { useEffect } from 'react';\nimport type { FunctionComponent } from 'react';\n\nimport { useEventTarget } from './contexts/event-target';\nimport type { AllowedKey } from './types/utils';\n\nexport function useListener(target: any, type: string, listener: (...args: any[]) => void) {\n useEffect(() => {\n const _listener = (...args: any[]) => listener(...args, target);\n const mapEventListener = naver.maps.Event.addListener(target, type, _listener);\n\n return () => {\n naver.maps.Event.removeListener(mapEventListener);\n };\n }, [target, type, listener]);\n}\n\nexport interface Props {\n target?: any;\n type: string;\n listener: (...args: any[]) => any;\n}\n\nexport const Listener: FunctionComponent<Props> = (props) => {\n const {\n target: propTarget,\n type,\n listener,\n } = props;\n\n const contextTarget = useEventTarget();\n const target = propTarget || contextTarget;\n if (!target) {\n throw new Error('react-naver-maps: No Target to add listener');\n }\n\n // TODO: FIX DefinitelyTyped\n useListener((target as unknown) as EventTarget, type, listener);\n\n return null;\n};\n\nexport function getListenerKeys<P extends Record<string, any>>(props: P) {\n return Object.keys(props).filter(key => /on[A-Z]\\w+/.test(key)) as unknown as Array<AllowedKey<P, `on${string}`>>;\n}\n"],"mappings":";;;;;AAAA,SAAS,iBAAiB;AAMnB,SAAS,YAAY,QAAa,MAAc,UAAoC;AACzF,YAAU,MAAM;AACd,UAAM,YAAY,IAAI,SAAgB,SAAS,GAAG,MAAM,MAAM;AAC9D,UAAM,mBAAmB,MAAM,KAAK,MAAM,YAAY,QAAQ,MAAM,SAAS;AAE7E,WAAO,MAAM;AACX,YAAM,KAAK,MAAM,eAAe,gBAAgB;AAAA,IAClD;AAAA,EACF,GAAG,CAAC,QAAQ,MAAM,QAAQ,CAAC;AAC7B;AAQO,IAAM,WAAqC,CAAC,UAAU;AAC3D,QAAM;AAAA,IACJ,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,QAAM,gBAAgB,eAAe;AACrC,QAAM,SAAS,cAAc;AAC7B,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,MAAM,6CAA6C;AAAA,EAC/D;AAGA,cAAa,QAAmC,MAAM,QAAQ;AAE9D,SAAO;AACT;AAEO,SAAS,gBAA+C,OAAU;AACvE,SAAO,OAAO,KAAK,KAAK,EAAE,OAAO,SAAO,aAAa,KAAK,GAAG,CAAC;AAChE;","names":[]}