"use client"; // pages/_app.tsx import { useEffect, useState } from "react"; import { Provider } from "react-redux"; import { useAppDispatch } from "@/redux/store"; import { AppProps } from "next/app"; import Header from "@/components/header/Header"; import Navigation from "@/components/navigation/Navigation"; import Footer from "@/components/footer/Footer"; import { store } from "@/redux/store"; import Script from "next/script"; import DeviceEventsBridge from "@/components/common/DeviceEventsBridge"; // Thunks importieren import { getKueDataThunk } from "@/redux/thunks/getKueDataThunk"; import { getAnalogInputsThunk } from "@/redux/thunks/getAnalogInputsThunk"; import { getDigitalOutputsThunk } from "@/redux/thunks/getDigitalOutputsThunk"; import { getAnalogInputsHistoryThunk } from "@/redux/thunks/getAnalogInputsHistoryThunk"; import { getLast20MessagesThunk } from "@/redux/thunks/getLast20MessagesThunk"; import { getOpcUaSettingsThunk } from "@/redux/thunks/getOpcUaSettingsThunk"; import { getSystemSettingsThunk } from "@/redux/thunks/getSystemSettingsThunk"; import { getSystemVoltTempThunk } from "@/redux/thunks/getSystemVoltTempThunk"; import { getReferenceCurveBySlotThunk } from "@/redux/thunks/getReferenceCurveBySlotThunk"; import { getAllTDRReferenceChartThunk } from "@/redux/thunks/getAllTDRReferenceChartThunk"; import { getTDRChartDataByIdThunk } from "@/redux/thunks/getTDRChartDataByIdThunk"; import { getLoopChartDataThunk } from "@/redux/thunks/getLoopChartDataThunk"; import { getAuthThunks } from "@/redux/thunks/getAuthThunks"; import { loadKvzData } from "@/redux/thunks/kvzThunks"; import Modal from "react-modal"; import { ToastContainer } from "react-toastify"; import "react-toastify/dist/ReactToastify.css"; if (typeof window !== "undefined") { Modal.setAppElement("#__next"); // oder "#root", je nach App-Struktur } import "@/styles/globals.css"; import CssBaseline from "@mui/material/CssBaseline"; import { ThemeProvider } from "@mui/material/styles"; import { muiTheme, buildTheme } from "@/styles/muiTheme"; function MyApp({ Component, pageProps }: AppProps) { // Rebuild theme on client if dark mode toggles (simple example) const [theme, setTheme] = useState(muiTheme); useEffect(() => { const observer = new MutationObserver(() => setTheme(buildTheme())); observer.observe(document.documentElement, { attributes: true, attributeFilter: ["class"] }); return () => observer.disconnect(); }, []); return ( {process.env.NODE_ENV === "development" ? (