// utils/loadWindowVariables.js export async function loadWindowVariables() { return new Promise((resolve, reject) => { //console.log("Running loadWindowVariables..."); // Log each run const requiredVars = [ "last20Messages", "deviceName", "mac1", "mac2", "ip", "subnet", "gateway", "datetime", "de", "counter", "flutter", "kueOnline", "kueID", "kueValid", "kueAlarm1", "kueAlarm2", "kueRes", "kueCableBreak", "kueGroundFault", "kueLimit1", "kueLimit2Low", "kueLimit2High", "kueDelay1", "kueLoopInterval", "kueVersion", "tdrAtten", "tdrPulse", "tdrSpeed", "tdrAmp", "tdrTrigger", "tdrLocation", "tdrActive", "kueOverflow", "kue100V", "kueResidence", "tdrLast", "kueBooting", "appVersion", ]; const loadScript = (src) => { return new Promise((resolve, reject) => { const script = document.createElement("script"); const environment = process.env.NEXT_PUBLIC_NODE_ENV || "production"; script.src = environment === "production" ? `/CPL?/CPL/SERVICE/${src}` : `/CPLmockData/SERVICE/${src}`; script.async = true; script.onload = resolve; script.onerror = reject; document.head.appendChild(script); }); }; const scripts = [ "de.js", "kueConfig.js", "kueData.js", "kueDetailTdr.js", "Start.js", "System.js", ]; // Load all required scripts Promise.all(scripts.map(loadScript)) .then(() => { // console.log("Scripts loaded. Checking for variables..."); // Interval to check if all required variables are loaded const checkInterval = setInterval(() => { const missingVars = requiredVars.filter( (variable) => window[variable] === undefined ); if (missingVars.length === 0) { //console.log("All system variables are now loaded."); clearInterval(checkInterval); resolve(); } else { console.log("Waiting for missing variables:", missingVars); } }, 5000); // Check every 5 seconds }) .catch((error) => { console.error("Error loading a script:", error); reject(error); }); }); }