From b73abf2fa2865cd82ed1f51b9deb21efd23d7198 Mon Sep 17 00:00:00 2001 From: Fachba Date: Mon, 29 Sep 2025 16:38:00 +0700 Subject: [PATCH] simplyfy code svg value mqtt --- src/components/Global/MqttConnection.jsx | 50 ++++++++++-------------- src/pages/home/SvgTest.jsx | 10 +---- 2 files changed, 23 insertions(+), 37 deletions(-) diff --git a/src/components/Global/MqttConnection.jsx b/src/components/Global/MqttConnection.jsx index 731a3fe..ab8287c 100644 --- a/src/components/Global/MqttConnection.jsx +++ b/src/components/Global/MqttConnection.jsx @@ -64,36 +64,28 @@ const listenMessage = (callback) => { }); }; -const listenMessageState = (setState) => { +const setValSvg = (listenTopic, svg) => { client.on('message', (topic, message) => { - const msgObj = { - date: new Date().toLocaleString(), - topic: topic, - msg: JSON.parse(message), - }; - setState(msgObj); + if (topic == listenTopic) { + const objChanel = JSON.parse(message); + + Object.entries(objChanel).forEach(([key, value]) => { + // console.log(key, value); + const el = svg.getElementById(key); + if (el) { + if (value === true) { + el.style.display = ''; // sembunyikan + } else if (value === false) { + el.style.display = 'none'; + } else if (!isNaN(value)) { + el.textContent = Number(value ?? 0.0); + } else { + el.textContent = value; + } + } + }); + } }); }; -const setValSvg = (msgValue, topic, svg) => { - if (msgValue.topic == topic) { - const objChanel = msgValue?.msg; - Object.entries(objChanel).forEach(([key, value]) => { - // console.log(key, value); - const el = svg.getElementById(key); - if (el) { - if (value === true) { - el.style.display = ''; // sembunyikan - } else if (value === false) { - el.style.display = 'none'; - } else if (!isNaN(value)) { - el.textContent = Number(value ?? 0.0); - } else { - el.textContent = value; - } - } - }); - } -}; - -export { publishMessage, listenMessage, listenMessageState, setValSvg }; +export { publishMessage, listenMessage, setValSvg }; diff --git a/src/pages/home/SvgTest.jsx b/src/pages/home/SvgTest.jsx index 976fc4b..3ee33f8 100644 --- a/src/pages/home/SvgTest.jsx +++ b/src/pages/home/SvgTest.jsx @@ -1,7 +1,7 @@ import { useEffect, useState } from 'react'; import { Card, Typography, Flex } from 'antd'; import { ReactSVG } from 'react-svg'; -import { listenMessageState, setValSvg } from '../../components/Global/MqttConnection'; +import { setValSvg } from '../../components/Global/MqttConnection'; const { Text } = Typography; @@ -9,12 +9,6 @@ const filePathSvg = '/svg/test-new.svg'; const topicMqtt = 'PIU_GGCP/Devices/PB'; const SvgTest = () => { - const [received, setReceived] = useState([]); - - listenMessageState(setReceived) - - useEffect(() => {}, []); - return ( <> @@ -27,7 +21,7 @@ const SvgTest = () => { { - setValSvg(received, topicMqtt, svg); + setValSvg(topicMqtt, svg); }} />