{"ast":null,"code":"var _jsxFileName = \"D:\\\\LDT\\\\000 Project\\\\LDT\\\\Client\\\\src\\\\components\\\\SensorList.js\",\n  _s = $RefreshSig$();\n// src/components/SensorList.js\nimport React, { useState, useEffect } from \"react\";\nimport axios from \"axios\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nfunction SensorList() {\n  _s();\n  const [sensors, setSensors] = useState([]);\n  const [error, setError] = useState(null);\n  useEffect(() => {\n    axios.get(\"http://localhost:4000/api/sensors\").then(res => setSensors(res.data)).catch(() => setError(\"데이터를 불러올 수 없습니다.\"));\n  }, []);\n  if (error) return /*#__PURE__*/_jsxDEV(\"div\", {\n    children: error\n  }, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 16,\n    columnNumber: 23\n  }, this);\n  return /*#__PURE__*/_jsxDEV(\"div\", {\n    children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n      children: \"\\uC13C\\uC11C \\uB9AC\\uC2A4\\uD2B8\"\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 20,\n      columnNumber: 13\n    }, this), /*#__PURE__*/_jsxDEV(\"ul\", {\n      style: {\n        listStyle: \"none\",\n        padding: 0\n      },\n      children: sensors.map(sensor => /*#__PURE__*/_jsxDEV(\"li\", {\n        style: {\n          display: \"flex\",\n          alignItems: \"center\",\n          padding: \"10px 0\",\n          borderBottom: \"1px solid #eee\"\n        },\n        children: [/*#__PURE__*/_jsxDEV(\"img\", {\n          src: sensor.image,\n          alt: sensor.name,\n          style: {\n            width: 48,\n            height: 48,\n            borderRadius: 8,\n            objectFit: \"cover\",\n            marginRight: 16\n          }\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 32,\n          columnNumber: 25\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          style: {\n            flex: 1\n          },\n          children: [/*#__PURE__*/_jsxDEV(\"b\", {\n            children: sensor.name\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 44,\n            columnNumber: 29\n          }, this), \" (\", sensor.type, \")\", /*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 44,\n            columnNumber: 65\n          }, this), \"\\uCE21\\uC815\\uAC12: \", sensor.value, \" / \\uC704\\uCE58: \", sensor.location]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 43,\n          columnNumber: 25\n        }, this)]\n      }, sensor.id, true, {\n        fileName: _jsxFileName,\n        lineNumber: 23,\n        columnNumber: 21\n      }, this))\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 21,\n      columnNumber: 13\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 19,\n    columnNumber: 9\n  }, this);\n}\n_s(SensorList, \"oyXoW/hasupiSN0GpBLfTwOBfmU=\");\n_c = SensorList;\nexport default SensorList;\nvar _c;\n$RefreshReg$(_c, \"SensorList\");","map":{"version":3,"names":["React","useState","useEffect","axios","jsxDEV","_jsxDEV","SensorList","_s","sensors","setSensors","error","setError","get","then","res","data","catch","children","fileName","_jsxFileName","lineNumber","columnNumber","style","listStyle","padding","map","sensor","display","alignItems","borderBottom","src","image","alt","name","width","height","borderRadius","objectFit","marginRight","flex","type","value","location","id","_c","$RefreshReg$"],"sources":["D:/LDT/000 Project/LDT/Client/src/components/SensorList.js"],"sourcesContent":["// src/components/SensorList.js\r\nimport React, { useState, useEffect } from \"react\";\r\nimport axios from \"axios\";\r\n\r\nfunction SensorList() {\r\n    const [sensors, setSensors] = useState([]);\r\n    const [error, setError] = useState(null);\r\n\r\n    useEffect(() => {\r\n        axios\r\n            .get(\"http://localhost:4000/api/sensors\")\r\n            .then((res) => setSensors(res.data))\r\n            .catch(() => setError(\"데이터를 불러올 수 없습니다.\"));\r\n    }, []);\r\n\r\n    if (error) return <div>{error}</div>;\r\n\r\n    return (\r\n        <div>\r\n            <h3>센서 리스트</h3>\r\n            <ul style={{ listStyle: \"none\", padding: 0 }}>\r\n                {sensors.map((sensor) => (\r\n                    <li\r\n                        key={sensor.id}\r\n                        style={{\r\n                            display: \"flex\",\r\n                            alignItems: \"center\",\r\n                            padding: \"10px 0\",\r\n                            borderBottom: \"1px solid #eee\",\r\n                        }}\r\n                    >\r\n                        <img\r\n                            src={sensor.image}\r\n                            alt={sensor.name}\r\n                            style={{\r\n                                width: 48,\r\n                                height: 48,\r\n                                borderRadius: 8,\r\n                                objectFit: \"cover\",\r\n                                marginRight: 16,\r\n                            }}\r\n                        />\r\n                        <div style={{ flex: 1 }}>\r\n                            <b>{sensor.name}</b> ({sensor.type})<br />\r\n                            측정값: {sensor.value} / 위치: {sensor.location}\r\n                        </div>\r\n                        {/* 필요시 상세 버튼 등 추가 가능 */}\r\n                    </li>\r\n                ))}\r\n            </ul>\r\n        </div>\r\n    );\r\n}\r\n\r\nexport default SensorList;"],"mappings":";;AAAA;AACA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,QAAQ,OAAO;AAClD,OAAOC,KAAK,MAAM,OAAO;AAAC,SAAAC,MAAA,IAAAC,OAAA;AAE1B,SAASC,UAAUA,CAAA,EAAG;EAAAC,EAAA;EAClB,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGR,QAAQ,CAAC,EAAE,CAAC;EAC1C,MAAM,CAACS,KAAK,EAAEC,QAAQ,CAAC,GAAGV,QAAQ,CAAC,IAAI,CAAC;EAExCC,SAAS,CAAC,MAAM;IACZC,KAAK,CACAS,GAAG,CAAC,mCAAmC,CAAC,CACxCC,IAAI,CAAEC,GAAG,IAAKL,UAAU,CAACK,GAAG,CAACC,IAAI,CAAC,CAAC,CACnCC,KAAK,CAAC,MAAML,QAAQ,CAAC,kBAAkB,CAAC,CAAC;EAClD,CAAC,EAAE,EAAE,CAAC;EAEN,IAAID,KAAK,EAAE,oBAAOL,OAAA;IAAAY,QAAA,EAAMP;EAAK;IAAAQ,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OAAM,CAAC;EAEpC,oBACIhB,OAAA;IAAAY,QAAA,gBACIZ,OAAA;MAAAY,QAAA,EAAI;IAAM;MAAAC,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAI,CAAC,eACfhB,OAAA;MAAIiB,KAAK,EAAE;QAAEC,SAAS,EAAE,MAAM;QAAEC,OAAO,EAAE;MAAE,CAAE;MAAAP,QAAA,EACxCT,OAAO,CAACiB,GAAG,CAAEC,MAAM,iBAChBrB,OAAA;QAEIiB,KAAK,EAAE;UACHK,OAAO,EAAE,MAAM;UACfC,UAAU,EAAE,QAAQ;UACpBJ,OAAO,EAAE,QAAQ;UACjBK,YAAY,EAAE;QAClB,CAAE;QAAAZ,QAAA,gBAEFZ,OAAA;UACIyB,GAAG,EAAEJ,MAAM,CAACK,KAAM;UAClBC,GAAG,EAAEN,MAAM,CAACO,IAAK;UACjBX,KAAK,EAAE;YACHY,KAAK,EAAE,EAAE;YACTC,MAAM,EAAE,EAAE;YACVC,YAAY,EAAE,CAAC;YACfC,SAAS,EAAE,OAAO;YAClBC,WAAW,EAAE;UACjB;QAAE;UAAApB,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACL,CAAC,eACFhB,OAAA;UAAKiB,KAAK,EAAE;YAAEiB,IAAI,EAAE;UAAE,CAAE;UAAAtB,QAAA,gBACpBZ,OAAA;YAAAY,QAAA,EAAIS,MAAM,CAACO;UAAI;YAAAf,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAI,CAAC,MAAE,EAACK,MAAM,CAACc,IAAI,EAAC,GAAC,eAAAnC,OAAA;YAAAa,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OAAK,CAAC,wBACrC,EAACK,MAAM,CAACe,KAAK,EAAC,mBAAO,EAACf,MAAM,CAACgB,QAAQ;QAAA;UAAAxB,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACzC,CAAC;MAAA,GAtBDK,MAAM,CAACiB,EAAE;QAAAzB,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAwBd,CACP;IAAC;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACF,CAAC;EAAA;IAAAH,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OACJ,CAAC;AAEd;AAACd,EAAA,CAhDQD,UAAU;AAAAsC,EAAA,GAAVtC,UAAU;AAkDnB,eAAeA,UAAU;AAAC,IAAAsC,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}