fix: deviceName im Header wird zuverlässig über fetchSystemSettingsThunk geladen

- deviceName wird nun bei fehlendem Wert automatisch im Header nachgeladen
- verhindert leere Anzeige beim Seitenwechsel oder Direktaufruf
- fetchSystemSettingsThunk im Header eingebunden und bei Bedarf ausgeführt
This commit is contained in:
ISA
2025-03-27 13:59:18 +01:00
parent 1b02f43be7
commit c91d621186
3 changed files with 19 additions and 5 deletions

View File

@@ -5,16 +5,16 @@ import { useRouter } from "next/router";
import "bootstrap-icons/font/bootstrap-icons.css"; import "bootstrap-icons/font/bootstrap-icons.css";
import SettingsModal from "./settingsModal/SettingsModal"; import SettingsModal from "./settingsModal/SettingsModal";
import { RootState } from "../../redux/store"; import { RootState } from "../../redux/store";
import { useSelector } from "react-redux"; import { useSelector, useDispatch } from "react-redux";
import { AppDispatch } from "../../redux/store";
import decodeToken from "../../utils/decodeToken"; import decodeToken from "../../utils/decodeToken";
import { fetchSystemSettingsThunk } from "../../redux/thunks/fetchSystemSettingsThunk";
function Header() { function Header() {
const router = useRouter(); const router = useRouter();
const [showSettingsModal, setShowSettingsModal] = useState(false); const [showSettingsModal, setShowSettingsModal] = useState(false);
const [isAdminLoggedIn, setIsAdminLoggedIn] = useState(false); const [isAdminLoggedIn, setIsAdminLoggedIn] = useState(false);
const deviceName = useSelector( // Removed duplicate declaration of deviceName
(state: RootState) => state.systemSettings.deviceName
);
const handleSettingsClick = () => setShowSettingsModal(true); const handleSettingsClick = () => setShowSettingsModal(true);
const handleCloseSettingsModal = () => setShowSettingsModal(false); const handleCloseSettingsModal = () => setShowSettingsModal(false);
@@ -50,6 +50,19 @@ function Header() {
clearInterval(interval); // Intervall stoppen, wenn die Komponente entladen wird clearInterval(interval); // Intervall stoppen, wenn die Komponente entladen wird
}; };
}, [isAdminLoggedIn]); }, [isAdminLoggedIn]);
//----------------------------------------------------------------
const dispatch = useDispatch<AppDispatch>();
const deviceName = useSelector(
(state: RootState) => state.systemSettings.deviceName
);
useEffect(() => {
if (!deviceName) {
dispatch(fetchSystemSettingsThunk());
}
}, [deviceName, dispatch]);
//----------------------------------------------------------------
return ( return (
<header className="bg-gray-300 flex justify-between items-center w-full h-[13vh] laptop:h-[10vh] relative text-black "> <header className="bg-gray-300 flex justify-between items-center w-full h-[13vh] laptop:h-[10vh] relative text-black ">

View File

@@ -6,5 +6,5 @@
2: Patch oder Hotfix (Bugfixes oder kleine Änderungen). 2: Patch oder Hotfix (Bugfixes oder kleine Änderungen).
*/ */
const webVersion = "1.6.177"; const webVersion = "1.6.178";
export default webVersion; export default webVersion;

View File

@@ -123,6 +123,7 @@ function Kabelueberwachung() {
dispatch(fetchKueDataThunk()); dispatch(fetchKueDataThunk());
} }
}, []); }, []);
//------------------------------------------------------------
//---------------------------------------------------------------- //----------------------------------------------------------------
return ( return (