{"ast":null,"code":"var _jsxFileName = \"D:\\\\LDT\\\\000 Project\\\\LDT\\\\Client\\\\src\\\\pages\\\\SensorList.js\",\n  _s = $RefreshSig$();\nimport React, { useEffect, useState } from \"react\";\nimport api from \"../utils/api\";\nimport mqtt from \"mqtt/dist/mqtt\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nfunction SensorList() {\n  _s();\n  const [sensors, setSensors] = useState([]);\n  useEffect(() => {\n    api.get(\"/sensor\").then(res => setSensors(res.data));\n    const client = mqtt.connect(\"ws://localhost:9001\");\n    client.on(\"connect\", () => client.subscribe(\"sensor/update\"));\n    client.on(\"message\", (topic, msg) => {\n      if (topic === \"sensor/update\") {\n        const data = JSON.parse(msg.toString());\n        setSensors(prev => prev.map(s => s.id === Number(data.id) ? {\n          ...s,\n          value: data.value\n        } : s));\n      }\n    });\n    return () => client.end();\n  }, []);\n  return /*#__PURE__*/_jsxDEV(\"div\", {\n    children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n      children: \"\\uC13C\\uC11C\\uB9AC\\uC2A4\\uD2B8\"\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 22,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(\"table\", {\n      children: [/*#__PURE__*/_jsxDEV(\"thead\", {\n        children: /*#__PURE__*/_jsxDEV(\"tr\", {\n          children: [/*#__PURE__*/_jsxDEV(\"th\", {\n            children: \"ID\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 24,\n            columnNumber: 20\n          }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n            children: \"\\uC774\\uB984\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 24,\n            columnNumber: 31\n          }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n            children: \"\\uAC12\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 24,\n            columnNumber: 42\n          }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n            children: \"\\uAC31\\uC2E0\\uC77C\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 24,\n            columnNumber: 52\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 24,\n          columnNumber: 16\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 24,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(\"tbody\", {\n        children: sensors.map(s => /*#__PURE__*/_jsxDEV(\"tr\", {\n          children: [/*#__PURE__*/_jsxDEV(\"td\", {\n            children: s.id\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 28,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n            children: s.name\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 29,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n            children: s.value\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 30,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n            children: s.updated_at\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 31,\n            columnNumber: 15\n          }, this)]\n        }, s.id, true, {\n          fileName: _jsxFileName,\n          lineNumber: 27,\n          columnNumber: 13\n        }, this))\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 25,\n        columnNumber: 9\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 23,\n      columnNumber: 7\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 21,\n    columnNumber: 5\n  }, this);\n}\n_s(SensorList, \"jX46rH897G+urM0ad4iJqHW7k0U=\");\n_c = SensorList;\nexport default SensorList;\nvar _c;\n$RefreshReg$(_c, \"SensorList\");","map":{"version":3,"names":["React","useEffect","useState","api","mqtt","jsxDEV","_jsxDEV","SensorList","_s","sensors","setSensors","get","then","res","data","client","connect","on","subscribe","topic","msg","JSON","parse","toString","prev","map","s","id","Number","value","end","children","fileName","_jsxFileName","lineNumber","columnNumber","name","updated_at","_c","$RefreshReg$"],"sources":["D:/LDT/000 Project/LDT/Client/src/pages/SensorList.js"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\r\nimport api from \"../utils/api\";\r\nimport mqtt from \"mqtt/dist/mqtt\";\r\nfunction SensorList() {\r\n  const [sensors, setSensors] = useState([]);\r\n  useEffect(() => {\r\n    api.get(\"/sensor\").then(res => setSensors(res.data));\r\n    const client = mqtt.connect(\"ws://localhost:9001\");\r\n    client.on(\"connect\", () => client.subscribe(\"sensor/update\"));\r\n    client.on(\"message\", (topic, msg) => {\r\n      if (topic === \"sensor/update\") {\r\n        const data = JSON.parse(msg.toString());\r\n        setSensors(prev =>\r\n          prev.map(s => s.id === Number(data.id) ? { ...s, value: data.value } : s)\r\n        );\r\n      }\r\n    });\r\n    return () => client.end();\r\n  }, []);\r\n  return (\r\n    <div>\r\n      <h2>센서리스트</h2>\r\n      <table>\r\n        <thead><tr><th>ID</th><th>이름</th><th>값</th><th>갱신일</th></tr></thead>\r\n        <tbody>\r\n          {sensors.map(s => (\r\n            <tr key={s.id}>\r\n              <td>{s.id}</td>\r\n              <td>{s.name}</td>\r\n              <td>{s.value}</td>\r\n              <td>{s.updated_at}</td>\r\n            </tr>\r\n          ))}\r\n        </tbody>\r\n      </table>\r\n    </div>\r\n  );\r\n}\r\nexport default SensorList;\r\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}