UNPKG

@davedev42/react-naver-maps

Version:

React Navermaps API integration for modern development.

1 lines 2.76 kB
{"version":3,"sources":["../src/load-navermaps-script.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport type { ReactElement } from 'react';\n\nimport type { ClientOptions } from './types/client';\nimport { loadScript } from './utils/load-script';\n\nexport function loadNavermapsScript(options: ClientOptions) {\n const url = makeUrl(options);\n\n // TODO: Caching Promise\n\n const promise = loadScript(url).then(() => {\n const navermaps = window.naver.maps;\n\n if (navermaps.jsContentLoaded) {\n return navermaps;\n }\n\n return new Promise<typeof naver.maps>(resolve => {\n navermaps.onJSContentLoaded = () => {\n resolve(navermaps);\n };\n });\n });\n\n return promise;\n}\n\nfunction makeUrl(options: ClientOptions) {\n const submodules = options.submodules;\n\n const clientIdQuery = 'ncpClientId' in options\n ? `ncpClientId=${options.ncpClientId}`\n : 'govClientId' in options\n ? `govClientId=${options.govClientId}`\n : 'finClientId' in options\n ? `finClientId=${options.finClientId}`\n : undefined;\n\n if (!clientIdQuery) {\n throw new Error('react-naver-maps: ncpClientId, govClientId or finClientId is required');\n }\n\n let url = `https://oapi.map.naver.com/openapi/v3/maps.js?${clientIdQuery}`;\n\n if (submodules) {\n url += `&submodules=${submodules.join(',')}`;\n }\n\n return url;\n}\n\ntype Props = ClientOptions & { children: () => ReactElement };\n\nexport function LoadNavermapsScript({\n children: Children,\n ...options\n}: Props) {\n const [navermaps, setNavermaps] = useState<typeof naver.maps>();\n\n useEffect(() => {\n loadNavermapsScript(options).then((maps) => {\n setNavermaps(maps);\n });\n }, []);\n\n return (\n (navermaps && Children) ? <Children /> : null\n );\n}\n"],"mappings":";;;;;AAAA,SAAS,WAAW,gBAAgB;AAmEN;AA7DvB,SAAS,oBAAoB,SAAwB;AAC1D,QAAM,MAAM,QAAQ,OAAO;AAI3B,QAAM,UAAU,WAAW,GAAG,EAAE,KAAK,MAAM;AACzC,UAAM,YAAY,OAAO,MAAM;AAE/B,QAAI,UAAU,iBAAiB;AAC7B,aAAO;AAAA,IACT;AAEA,WAAO,IAAI,QAA2B,aAAW;AAC/C,gBAAU,oBAAoB,MAAM;AAClC,gBAAQ,SAAS;AAAA,MACnB;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AAED,SAAO;AACT;AAEA,SAAS,QAAQ,SAAwB;AACvC,QAAM,aAAa,QAAQ;AAE3B,QAAM,gBAAgB,iBAAiB,UACnC,eAAe,QAAQ,WAAW,KAClC,iBAAiB,UACf,eAAe,QAAQ,WAAW,KAClC,iBAAiB,UACf,eAAe,QAAQ,WAAW,KAClC;AAER,MAAI,CAAC,eAAe;AAClB,UAAM,IAAI,MAAM,uEAAuE;AAAA,EACzF;AAEA,MAAI,MAAM,iDAAiD,aAAa;AAExE,MAAI,YAAY;AACd,WAAO,eAAe,WAAW,KAAK,GAAG,CAAC;AAAA,EAC5C;AAEA,SAAO;AACT;AAIO,SAAS,oBAAoB;AAAA,EAClC,UAAU;AAAA,EACV,GAAG;AACL,GAAU;AACR,QAAM,CAAC,WAAW,YAAY,IAAI,SAA4B;AAE9D,YAAU,MAAM;AACd,wBAAoB,OAAO,EAAE,KAAK,CAAC,SAAS;AAC1C,mBAAa,IAAI;AAAA,IACnB,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAEL,SACG,aAAa,WAAY,oBAAC,YAAS,IAAK;AAE7C;","names":[]}