// hooks/windowvariables/useLoadWindowVariables.ts import { useEffect } from "react"; import { useDispatch } from "react-redux"; const requiredVars: string[] = [ // Hier verbleiben nur die noch benötigten Variablen ]; const scripts: string[] = [ "da.js", "de.js", "ae.js", "kueData.js", "Start.js", "System.js", "opcua.js", ]; const loadScript = (src: string): Promise => { 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(new Error(`Script load error: ${src}`)); document.head.appendChild(script); }); }; export const useLoadWindowVariables = () => { const dispatch = useDispatch(); useEffect(() => { const loadVariables = async () => { try { for (const script of scripts) { await loadScript(script); } const variablesObj: { [key: string]: any } = requiredVars.reduce( (acc, variable) => { const winVar = (window as any)[variable]; if (winVar !== undefined) { acc[variable.replace("win_", "")] = winVar; } return acc; }, {} ); // Falls noch andere Variablen verarbeitet werden müssen, kann hier Code eingefügt werden } catch (error) { console.error("Fehler beim Laden der Skripte oder Variablen:", error); } }; loadVariables(); }, [dispatch]); };