feat: Implement dynamic module name rendering using window.kueVersion

- Updated KabelModulStatus component to dynamically display module names based on version.
- Integrated window.kueVersion[slot] to determine the correct module name (KÜ705, KÜ605, or KÜSS).
- Enhanced UI to reflect the module type and status accordingly.
This commit is contained in:
ISA
2024-09-30 12:26:33 +02:00
parent 8f94d70b92
commit 91e744ef42
2 changed files with 34 additions and 14 deletions

View File

@@ -7,7 +7,7 @@ import { loadWindowVariables } from "../../utils/loadWindowVariables";
import CPLStatus from "../../components/modulesStatus/CPLStatus";
import Access1Status from "../../components/modulesStatus/Access1Status";
import Access2Status from "../../components/modulesStatus/Access2Status";
import Kue705_FO from "../../components/modulesStatus/Kue705_FO";
import KabelModulStatus from "../../components/modulesStatus/KabelModulStatus";
import XioPM1Status from "../../components/modulesStatus/XioPM1Status";
import XioPM2Status from "../../components/modulesStatus/XioPM2Status";
import { Icon } from "@iconify/react";
@@ -94,14 +94,13 @@ function Dashboard() {
useEffect(() => {
loadWindowVariables(apiUrl)
.then(() => {
console.log("kueOnline Data: ", window.kueOnline); // Debug: Ausgabe von kueOnline
if (window.kueOnline) {
// Prüfe, ob kueOnline ein Array ist
if (Array.isArray(window.kueOnline)) {
// Verarbeite das Array, indem es in einen String umgewandelt wird
const versionArray = window.kueOnline.map(Number);
setkueOnline(versionArray);
} else {
// Falls kueOnline kein Array ist, gibt eine Fehlermeldung aus
console.error("kueOnline ist kein Array:", window.kueOnline);
setError("Konnte kueOnline nicht als Array verarbeiten.");
}
@@ -118,10 +117,10 @@ function Dashboard() {
});
}, [apiUrl]);
// Dashboard.jsx (Abschnitt renderBaugruppentraeger)
const renderBaugruppentraeger = () => {
const baugruppen = [];
// Adjust based on actual length of kueOnline
const numBaugruppen = Math.ceil(kueOnline.length / 8);
for (let i = 0; i < numBaugruppen; i++) {
@@ -133,11 +132,17 @@ function Dashboard() {
{slots.map((version, index) => {
const slotNumber = i * 8 + index + 1;
// Verwende window.kueVersion[slotNumber - 1] für die Modulversion
const moduleVersion = window.kueVersion
? window.kueVersion[slotNumber - 1]
: version;
return (
<Kue705_FO
<KabelModulStatus
key={slotNumber}
slot={slotNumber}
isOnline={version === 1} // Only pass isOnline true if the slot is connected
isOnline={version !== 0} // Prüfen, ob ein Modul online ist
moduleVersion={moduleVersion} // Modulversion aus window.kueVersion oder fallback auf version
kueCableBreak={kueCableBreak}
/>
);

View File

@@ -1,7 +1,7 @@
// components/Kue705_FO.jsx
// components/modulesStatus/KabelModulStatus.jsx
import React from "react";
const Kue705_FO = ({ slot, kueCableBreak, isOnline }) => {
const KabelModulStatus = ({ slot, kueCableBreak, isOnline, moduleVersion }) => {
if (!isOnline) {
return (
<div className="border border-gray-400 w-10 h-20 flex items-center justify-center bg-gray-200">
@@ -10,17 +10,32 @@ const Kue705_FO = ({ slot, kueCableBreak, isOnline }) => {
);
}
// Bestimme den Modultyp basierend auf der Version
let moduleName = "";
let moduleType = "";
if (moduleVersion === 419) {
moduleName = "KÜ705";
moduleType = "FO";
} else if (moduleVersion === 350) {
moduleName = "KÜ605";
moduleType = "µC";
} else if (moduleVersion === 1100) {
moduleName = "KÜSS";
moduleType = "___";
}
const isCableBreak = kueCableBreak[slot - 1] === 1;
return (
<div className="border border-gray-400 w-10 h-20 flex flex-col">
{/* Erstes Kind, nimmt den restlichen Platz ein */}
{/* Slot-Nummer anzeigen */}
<div className="bg-blue-500 flex-grow flex flex-col items-center justify-center text-white text-[10px]">
<div className="flex w-full mb-1 items-start justify-start">{slot}</div>
<div className="text-[10px]">KÜ705</div>
<div className="text-[10px]">FO</div>
<div className="text-[10px]">{moduleName}</div>
<div className="text-[10px]">{moduleType}</div>
</div>
{/* Die unteren Abschnitte behalten ihre festen Höhen */}
{/* Status-Anzeige */}
<div
className={`w-full h-2/6 ${
isCableBreak ? "bg-red-500" : "bg-green-500"
@@ -31,4 +46,4 @@ const Kue705_FO = ({ slot, kueCableBreak, isOnline }) => {
);
};
export default Kue705_FO;
export default KabelModulStatus;