Skip to content

Commit a491697

Browse files
authored
fix(useNaverMapInit): useNaverMapInit 리렌더링 됐을 때, 지도 스크립트가 존재하면 isLoaded 상태를 반환하도록 변경
1 parent 8a07cab commit a491697

1 file changed

Lines changed: 14 additions & 9 deletions

File tree

src/hooks/useNaverMapInit/index.ts

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { useState } from "react";
22
import { isClientSide, isFunction } from "../../utils";
3-
import { SCRIPT_ID } from "./constants";
43
import { useIsomorphicLayoutEffect } from "../useIsomorphicLayoutEffect";
4+
import { SCRIPT_ID } from "./constants";
5+
import type { InitResult, UseNaverMapInit } from "./types";
56
import {
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

Comments
 (0)