11import { useState } from "react" ;
22import { isClientSide , isFunction } from "../../utils" ;
3- import { SCRIPT_ID } from "./constants" ;
43import { useIsomorphicLayoutEffect } from "../useIsomorphicLayoutEffect" ;
4+ import { SCRIPT_ID } from "./constants" ;
5+ import type { InitResult , UseNaverMapInit } from "./types" ;
56import {
6- insertNaverMapScriptIntoHead ,
77 createNaverMapScriptByClientId ,
8+ insertNaverMapScriptIntoHead ,
89} from "./utils" ;
9- import type { InitResult , UseNaverMapInit } from "./types" ;
1010
1111/**
1212 * Load naver map script with provided client id.
@@ -32,22 +32,27 @@ export const useNaverMapInit: UseNaverMapInit = ({
3232 setInitResult ( { isLoaded : false , isError : false } ) ;
3333 return ;
3434 }
35- if ( document . getElementById ( SCRIPT_ID ) ) return ;
35+ if ( document . getElementById ( SCRIPT_ID ) ) {
36+ setInitResult ( { isLoaded : true , isError : false } ) ;
37+ return ;
38+ }
3639
3740 const initNaverMapScript = async ( ) => {
3841 const scriptInitResult = new Promise < InitResult > ( ( resolve , reject ) => {
39- const script = createNaverMapScriptByClientId ( { ncpClientId, submodules } ) ;
42+ const script = createNaverMapScriptByClientId ( {
43+ ncpClientId,
44+ submodules,
45+ } ) ;
4046 insertNaverMapScriptIntoHead ( script ) ;
4147
4248 script . addEventListener ( "load" , function ( ) {
43- console . info ( 'Initialized react-naver-map.' ) ;
49+ console . info ( " react-naver-map is initialized " ) ;
4450 resolve ( { isLoaded : true , isError : false } ) ;
4551 } ) ;
4652
4753 script . addEventListener ( "error" , function ( ) {
48- console . warn (
49- 'Failed to initialize react-naver-map.' ,
50- ) ;
54+ console . warn ( "Failed to initialize react-naver-map." ) ;
55+ document . getElementById ( SCRIPT_ID ) ?. remove ( ) ;
5156 reject ( { isLoaded : false , isError : true } ) ;
5257 } ) ;
5358 } ) ;
0 commit comments