{"ast":null,"code":"var _jsxFileName = \"D:\\\\LDT\\\\000 Project\\\\LDT\\\\Client\\\\src\\\\pages\\\\MarkerMap.js\",\n  _s = $RefreshSig$();\nimport React, { useState, useEffect, useContext } from \"react\";\nimport NaverMap from \"../components/NaverMap\";\nimport { AuthContext } from \"../contexts/AuthContext\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nfunction getIconByType(type) {\n  switch (type) {\n    case \"ASN-400M\":\n      return \"/icons/ASN-400M.png\";\n    case \"LSN-405L\":\n      return \"/icons/LSN-405L.png\";\n    default:\n      return \"/icons/LSN-405L.png\";\n  }\n}\nexport default function MarkerMap() {\n  _s();\n  const {\n    user\n  } = useContext(AuthContext);\n  const [markers, setMarkers] = useState([]);\n  const [loading, setLoading] = useState(true);\n  const [errMsg, setErrMsg] = useState(\"\");\n  useEffect(() => {\n    if (!user) return;\n    setLoading(true);\n    setErrMsg(\"\");\n    fetch(\"http://192.168.1.93:4000/api/marker\", {\n      headers: {\n        Authorization: `Bearer ${user.token}`\n      }\n    }).then(async res => {\n      if (!res.ok) {\n        // 401, 500 등 오류 메시지 추출\n        const msg = await res.text();\n        throw new Error(msg || res.statusText);\n      }\n      return res.json();\n    }).then(data => {\n      console.log(\"받은 데이터:\", data);\n\n      // 배열 아니면 오류\n      if (!Array.isArray(data)) {\n        setErrMsg(data.msg || \"올바른 데이터가 아닙니다.\");\n        setMarkers([]);\n      } else {\n        setMarkers(data.map(row => ({\n          lat: row.latitude,\n          lng: row.longitude,\n          title: row.name,\n          desc: row.type,\n          icon: getIconByType(row.type)\n        })));\n      }\n    }).catch(err => {\n      setErrMsg(err.message);\n      setMarkers([]);\n    }).finally(() => setLoading(false));\n  }, [user]);\n  if (!user) return /*#__PURE__*/_jsxDEV(\"div\", {\n    children: \"\\uB85C\\uADF8\\uC778 \\uD544\\uC694\"\n  }, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 64,\n    columnNumber: 21\n  }, this);\n  return /*#__PURE__*/_jsxDEV(\"section\", {\n    children: [/*#__PURE__*/_jsxDEV(\"header\", {\n      className: \"main\",\n      children: /*#__PURE__*/_jsxDEV(\"h1\", {\n        children: \"Sensor Map\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 69,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 68,\n      columnNumber: 7\n    }, this), loading ? /*#__PURE__*/_jsxDEV(\"div\", {\n      children: \"\\uC9C0\\uB3C4 \\uBC0F \\uB370\\uC774\\uD130 \\uBD88\\uB7EC\\uC624\\uB294 \\uC911...\"\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 72,\n      columnNumber: 9\n    }, this) : errMsg ? /*#__PURE__*/_jsxDEV(\"div\", {\n      style: {\n        color: \"red\"\n      },\n      children: [\"\\uC5D0\\uB7EC: \", errMsg]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 74,\n      columnNumber: 9\n    }, this) : /*#__PURE__*/_jsxDEV(NaverMap, {\n      markers: markers\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 76,\n      columnNumber: 9\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 67,\n    columnNumber: 5\n  }, this);\n}\n_s(MarkerMap, \"yAZ6oK3eIyGQdmqjCBUXDcsm+Ks=\");\n_c = MarkerMap;\nvar _c;\n$RefreshReg$(_c, \"MarkerMap\");","map":{"version":3,"names":["React","useState","useEffect","useContext","NaverMap","AuthContext","jsxDEV","_jsxDEV","getIconByType","type","MarkerMap","_s","user","markers","setMarkers","loading","setLoading","errMsg","setErrMsg","fetch","headers","Authorization","token","then","res","ok","msg","text","Error","statusText","json","data","console","log","Array","isArray","map","row","lat","latitude","lng","longitude","title","name","desc","icon","catch","err","message","finally","children","fileName","_jsxFileName","lineNumber","columnNumber","className","style","color","_c","$RefreshReg$"],"sources":["D:/LDT/000 Project/LDT/Client/src/pages/MarkerMap.js"],"sourcesContent":["import React, { useState, useEffect, useContext } from \"react\";\r\nimport NaverMap from \"../components/NaverMap\";\r\nimport { AuthContext } from \"../contexts/AuthContext\";\r\n\r\nfunction getIconByType(type) {\r\n  switch (type) {\r\n    case \"ASN-400M\":\r\n      return \"/icons/ASN-400M.png\";\r\n    case \"LSN-405L\":\r\n      return \"/icons/LSN-405L.png\";\r\n    default:\r\n      return \"/icons/LSN-405L.png\";\r\n  }\r\n}\r\n\r\nexport default function MarkerMap() {\r\n  const { user } = useContext(AuthContext);\r\n  const [markers, setMarkers] = useState([]);\r\n  const [loading, setLoading] = useState(true);\r\n  const [errMsg, setErrMsg] = useState(\"\");\r\n\r\n  useEffect(() => {\r\n    if (!user) return;\r\n    setLoading(true);\r\n    setErrMsg(\"\");\r\n    fetch(\"http://192.168.1.93:4000/api/marker\", {\r\n      headers: { Authorization: `Bearer ${user.token}` }\r\n    })\r\n      .then(async (res) =>\r\n      {\r\n        if (!res.ok) {\r\n          // 401, 500 등 오류 메시지 추출\r\n          const msg = await res.text();\r\n          throw new Error(msg || res.statusText);\r\n        }\r\n        return res.json();\r\n      })\r\n      .then((data) => {\r\n        console.log(\"받은 데이터:\", data);\r\n\r\n        // 배열 아니면 오류\r\n        if (!Array.isArray(data)) {\r\n          setErrMsg(data.msg || \"올바른 데이터가 아닙니다.\");\r\n          setMarkers([]);\r\n        } else {\r\n          setMarkers(\r\n            data.map((row) => ({\r\n              lat: row.latitude,\r\n              lng: row.longitude,\r\n              title: row.name,\r\n              desc: row.type,\r\n              icon: getIconByType(row.type),\r\n            }))\r\n          );\r\n        }\r\n      })\r\n      .catch((err) => {\r\n        setErrMsg(err.message);\r\n        setMarkers([]);\r\n      })\r\n      .finally(() => setLoading(false));\r\n  }, [user]);\r\n\r\n  if (!user) return <div>로그인 필요</div>;\r\n\r\n  return (\r\n    <section>\r\n      <header className=\"main\">\r\n        <h1>Sensor Map</h1>\r\n      </header>\r\n      {loading ? (\r\n        <div>지도 및 데이터 불러오는 중...</div>\r\n      ) : errMsg ? (\r\n        <div style={{ color: \"red\" }}>에러: {errMsg}</div>\r\n      ) : (\r\n        <NaverMap markers={markers} />\r\n      )}\r\n    </section>\r\n  );\r\n}\r\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}