UNPKG

@judgeme/shopify-hydrogen

Version:

- This module helps integrate Judge.me Widgets to Hydrogen V2 storefront app. Currently, it works fully on the client side and widget data will be fetched from Judge.me CDN - To see support for Hydrogen V1, please visit https://www.npmjs.com/package/@judg

50 lines 2.02 kB
import { useEffect } from "react"; const useJudgeme = ({ shopDomain, publicToken, cdnHost, delay = 500, }) => { useEffect(() => { if (!shopDomain || !publicToken || !cdnHost) { console.log("CONFIG ERROR: Missing config values for store domain, store public token, cdn host"); return; } const shopCredentials = ` if (typeof jdgm === 'undefined') { let jdgm = {}; jdgm.SHOP_DOMAIN = '${shopDomain}'; jdgm.PLATFORM = 'shopify'; jdgm.PUBLIC_TOKEN = '${publicToken}'; window.jdgm = jdgm; }; `; fetch(cdnHost + "/widget_preloader.js") .then((res) => res.text()) .then((text) => { const preloaderFunction = `function jdgm_preloader(){${text}}`; const shopCredentialsScript = document.createElement("script"); const preloaderScript = document.createElement("script"); const installedScript = document.createElement("script"); shopCredentialsScript.innerText = shopCredentials; preloaderScript.innerText = preloaderFunction; installedScript.src = cdnHost + "/assets/installed.js"; document.head.append(shopCredentialsScript, preloaderScript, installedScript); console.log("Judge.me script loaded"); }); }, []); useEffect(() => { if (window.jdgm_rerender) { window.clearTimeout(window.jdgm_rerender); } window.jdgm_rerender = window.setTimeout(() => { window.clearTimeout(window.jdgm_rerender); if (window.jdgm_preloader && !window.jdgmCacheServer) { window.jdgm_preloader(); } else if (window.jdgmCacheServer) { window.jdgmCacheServer.reloadAll(); } else { console.log("missing Judge.me script"); } }, delay); }); }; export default useJudgeme; //# sourceMappingURL=JudgemeLoader.js.map