react-naver-maps
Version:
React Navermaps API integration for modern development.
1 lines • 1.91 kB
Source Map (JSON)
{"version":3,"sources":["../src/use-navermaps.ts"],"sourcesContent":["import { suspend } from 'suspend-react';\n\nimport { useClientOptions } from './contexts/client-options';\nimport { loadNavermapsScript } from './load-navermaps-script';\nimport type { ClientOptions } from './types/client';\n\nasync function load(options?: ClientOptions): Promise<typeof naver.maps> {\n if (typeof window !== 'undefined' && window.naver?.maps) {\n return window.naver.maps;\n }\n\n if (!options) {\n throw new Error('react-naver-maps: set options with `useNavermaps.config`');\n }\n\n return await loadNavermapsScript(options);\n}\n\nexport function useNavermaps() {\n if (typeof window === 'undefined') {\n throw new Error('react-naver-maps: browser');\n }\n\n /**\n * TODO: Provider option 이 변경될 경우 클리어하는 로직 필요\n * ex) submodule 에 파노라마 추가시 window.naver.maps가 존재하므로 새로 로드하지 않음\n */\n if (window.naver?.maps) {\n return window.naver.maps;\n }\n\n const options = useClientOptions();\n\n return suspend(load, [options, 'react-naver-maps/loadClient']);\n}\n\n// useNavermaps.preload = (options: any) => {\n// if (!window) {\n// return;\n// }\n\n// return preload(load, [options, 'react-naver-maps/loadClient']);\n// };\n\n// useNavermaps.clear = (options: any) => {\n// return clear([options, 'react-naver-maps/loadClient']);\n// };\n"],"mappings":";;;;;;;;AAAA,SAAS,eAAe;AAMxB,eAAe,KAAK,SAAqD;AANzE;AAOE,MAAI,OAAO,WAAW,iBAAe,YAAO,UAAP,mBAAc,OAAM;AACvD,WAAO,OAAO,MAAM;AAAA,EACtB;AAEA,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,0DAA0D;AAAA,EAC5E;AAEA,SAAO,MAAM,oBAAoB,OAAO;AAC1C;AAEO,SAAS,eAAe;AAlB/B;AAmBE,MAAI,OAAO,WAAW,aAAa;AACjC,UAAM,IAAI,MAAM,2BAA2B;AAAA,EAC7C;AAMA,OAAI,YAAO,UAAP,mBAAc,MAAM;AACtB,WAAO,OAAO,MAAM;AAAA,EACtB;AAEA,QAAM,UAAU,iBAAiB;AAEjC,SAAO,QAAQ,MAAM,CAAC,SAAS,6BAA6B,CAAC;AAC/D;","names":[]}