Skip to content

Commit 6eba0d6

Browse files
committed
Refactor useScript
1 parent 4867d7b commit 6eba0d6

File tree

1 file changed

+7
-11
lines changed

1 file changed

+7
-11
lines changed

index.js

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1085,31 +1085,27 @@ export function useScript(src, options = {}) {
10851085

10861086
let script = document.querySelector(`script[src="${src}"]`);
10871087

1088-
if (script) {
1089-
setStatus(cachedScriptStatus ?? "loading");
1090-
} else {
1088+
if (!script) {
10911089
script = document.createElement("script");
10921090
script.src = src;
10931091
script.async = true;
10941092
document.body.appendChild(script);
10951093
}
10961094

1097-
const setStateFromEvent = (event) => {
1095+
const handleScriptStatus = (event) => {
10981096
const newStatus = event.type === "load" ? "ready" : "error";
10991097
setStatus(newStatus);
11001098
cachedScriptStatuses.current[src] = newStatus;
11011099
};
11021100

1103-
script.addEventListener("load", setStateFromEvent);
1104-
script.addEventListener("error", setStateFromEvent);
1101+
script.addEventListener("load", handleScriptStatus);
1102+
script.addEventListener("error", handleScriptStatus);
11051103

11061104
return () => {
1107-
if (script) {
1108-
script.removeEventListener("load", setStateFromEvent);
1109-
script.removeEventListener("error", setStateFromEvent);
1110-
}
1105+
script.removeEventListener("load", handleScriptStatus);
1106+
script.removeEventListener("error", handleScriptStatus);
11111107

1112-
if (script && options.removeOnUnmount) {
1108+
if (options.removeOnUnmount === true) {
11131109
script.remove();
11141110
}
11151111
};

0 commit comments

Comments
 (0)