UNPKG

use-script-loader

Version:
36 lines (35 loc) 1.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useScriptLoader = void 0; var react_1 = require("react"); var scriptLoader_1 = require("./scriptLoader"); function useScriptLoader(source, attrs, node, skip) { var _a = react_1.useState(true), loading = _a[0], setIsLoading = _a[1]; var _b = react_1.useState({}), error = _b[0], setError = _b[1]; var _c = react_1.useState({}), scriptReference = _c[0], setScriptReference = _c[1]; react_1.useEffect(function () { var scripts = Array.from(document.scripts); for (var i = 0; i < scripts.length; i++) { if (scripts[i].src.includes(source)) { setIsLoading(false); return; } } if (!skip) { scriptLoader_1.default(source, attrs, node) .then(function (script) { setIsLoading(false); setScriptReference(script); }) .catch(function (e) { console.error(e); setError(e); }); } else { setIsLoading(false); } }, []); return [loading, scriptReference, error]; } exports.useScriptLoader = useScriptLoader;