From 5c5f8167441189b62f398829e166ae5e4c167a9d Mon Sep 17 00:00:00 2001 From: ISA Date: Fri, 1 Nov 2024 07:24:43 +0100 Subject: [PATCH] Variablen nur in redux store und DevTools redux-toolkit --- pages/_app.js | 5 +- public/CPLmockData/SERVICE/kueData.js | 2 +- store/store.js | 1 + utils/loadWindowVariables.js | 82 ++++----------------------- 4 files changed, 16 insertions(+), 74 deletions(-) diff --git a/pages/_app.js b/pages/_app.js index 1ebe903..35e6ba1 100644 --- a/pages/_app.js +++ b/pages/_app.js @@ -12,9 +12,8 @@ import store from "../store/store"; function MyApp({ Component, pageProps }) { useEffect(() => { const loadAndStoreVariables = async () => { - await loadWindowVariables(); - const variables = {}; // Hier Variablen laden und in variables speichern - store.dispatch(setVariables(variables)); + const variables = await loadWindowVariables(); + store.dispatch(setVariables(variables)); // Speichere die geladenen Variablen im Redux Store }; if (typeof window !== "undefined") { diff --git a/public/CPLmockData/SERVICE/kueData.js b/public/CPLmockData/SERVICE/kueData.js index f10458d..6ab8590 100644 --- a/public/CPLmockData/SERVICE/kueData.js +++ b/public/CPLmockData/SERVICE/kueData.js @@ -1,6 +1,6 @@ //Modul vorhanden 1 = vorhanden, 0 = nicht vorhanden var kueOnline = [ - 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ]; //--------------------------------------------------- diff --git a/store/store.js b/store/store.js index f5a3d8c..6c23461 100644 --- a/store/store.js +++ b/store/store.js @@ -6,6 +6,7 @@ const store = configureStore({ reducer: { variables: variablesReducer, }, + devTools: process.env.NODE_ENV !== "production", // Aktiviert DevTools nur in der Entwicklung }); export default store; diff --git a/utils/loadWindowVariables.js b/utils/loadWindowVariables.js index 5e9927a..ea930ef 100644 --- a/utils/loadWindowVariables.js +++ b/utils/loadWindowVariables.js @@ -1,6 +1,4 @@ // utils/loadWindowVariables.js -import { initializeDatabase } from "./indexedDB"; // Importiere initializeDatabase - export async function loadWindowVariables() { return new Promise((resolve, reject) => { const requiredVars = [ @@ -55,77 +53,21 @@ export async function loadWindowVariables() { }); }; - const saveToIndexedDB = async (key, value) => { - const db = await initializeDatabase(); - const tx = db.transaction("cplVariables", "readwrite"); - const store = tx.objectStore("cplVariables"); - await store.put(value, key); - return tx.done; - }; - - const saveVariables = async () => { - const savePromises = requiredVars.map(async (variable) => { - if (window[variable] !== undefined) { - localStorage.setItem(variable, window[variable]); - await saveToIndexedDB(variable, window[variable]); - } - }); - await Promise.all(savePromises); - }; - const scripts = ["de.js", "kueData.js", "Start.js", "System.js"]; scripts - .reduce((promise, script) => { - return promise.then(() => loadScript(script)); - }, Promise.resolve()) - .then(async () => { - const checkVariables = () => { - const missingVars = requiredVars.filter( - (variable) => window[variable] === undefined - ); - return missingVars; - }; - - const initialMissingVars = checkVariables(); - - if (initialMissingVars.length === 0) { - console.log("Alle Variablen von CPL geladen."); - await saveVariables(); - resolve(); - } else { - console.log( - "Noch fehlende Variablen beim ersten Aufruf:", - initialMissingVars - ); - - const maxChecks = 10; - let checkCount = 0; - const checkInterval = setInterval(async () => { - const remainingMissingVars = checkVariables(); - - if (remainingMissingVars.length === 0) { - clearInterval(checkInterval); - console.log("Alle fehlenden Systemvariablen sind jetzt geladen."); - await saveVariables(); - resolve(); - } else if (checkCount >= maxChecks) { - clearInterval(checkInterval); - console.warn( - "Einige Variablen wurden nicht geladen:", - remainingMissingVars - ); - reject( - new Error( - "Einige Variablen fehlen nach wiederholten Versuchen." - ) - ); - } else { - console.log("Noch fehlende Variablen:", remainingMissingVars); - } - checkCount++; - }, 10000); // Überprüfung alle 10 Sekunden - } + .reduce( + (promise, script) => promise.then(() => loadScript(script)), + Promise.resolve() + ) + .then(() => { + const variablesObj = requiredVars.reduce((acc, variable) => { + if (window[variable] !== undefined) { + acc[variable] = window[variable]; + } + return acc; + }, {}); + resolve(variablesObj); }) .catch((error) => { console.error("Fehler beim Laden eines Skripts:", error);