// /hooks/useLineData.js import { useEffect, useState } from "react"; import { SERVER_URL } from "../config/urls"; const useLineData = (webserviceGisLinesStatusUrl, setLineStatusData) => { const [lineColors, setLineColors] = useState({}); const [tooltipContents, setTooltipContents] = useState({}); useEffect(() => { const fetchData = async () => { try { const response1 = await fetch(webserviceGisLinesStatusUrl); const data1 = await response1.json(); const response2 = await fetch(`${SERVER_URL}:3000/api/talas_v5_DB/gisLines/readGisLines`); const data2 = await response2.json(); const colorsByModule = {}; const newTooltipContents = {}; const reversedData = data1.Statis ? data1.Statis.reverse() : []; reversedData.forEach((stat) => { const matchingLine = data2.find((item) => item.idLD === stat.IdLD && item.idModul === stat.Modul); if (matchingLine) { // Check if PrioColor is #ffffff and change it to green const prioColor = stat.PrioColor === "#ffffff" ? "green" : stat.PrioColor; colorsByModule[matchingLine.idModul] = prioColor; newTooltipContents[matchingLine.idModul] = `
${stat.ModulName || "Unknown"}
${stat.ModulTyp || "N/A"}
Slot: ${stat.Modul || "N/A"}
${stat.Message || "N/A"}
(${stat.PrioName || "N/A"})
${stat.DpName || "N/A"} : ${stat.Value || "N/A"}
`; } }); setLineColors(colorsByModule); setTooltipContents(newTooltipContents); setLineStatusData(reversedData); } catch (error) { console.error("Error fetching data:", error); } }; fetchData(); }, [webserviceGisLinesStatusUrl, setLineStatusData]); return { lineColors, tooltipContents }; }; export default useLineData;