UNPKG

react-defold

Version:
31 lines (28 loc) 1.24 kB
import { useState, useEffect } from 'react'; function useEmbedScript(script, ref, external, timeout) { var _a = useState(true), loading = _a[0], setLoading = _a[1]; var _b = useState(false), error = _b[0]; _b[1]; var handleReadyStateChange = function () { return setLoading(false); }; useEffect(function () { var loader = document.createElement('script'); loader.type = 'text/javascript'; loader.async = true; loader.defer = true; loader.src = script; loader.onload = handleReadyStateChange; var parent = ref && ref.current ? ref.current : document.body; var scripts = Array.from(parent.getElementsByTagName('script')); var exists = scripts.find(function (s) { return s.src === script; }); if (exists) exists.remove(); parent.appendChild(loader); return function () { loader.onload = null; loader.onreadystatechange = function () { return void 0; }; document.body.removeChild(loader); }; }, []); return { loading: loading, error: error, complete: !loading && !error }; } export { useEmbedScript }; //# sourceMappingURL=useEmbedScript.js.map