{"ast":null,"code":"var _jsxFileName = \"D:\\\\LDT\\\\000 Project\\\\LDT\\\\Client\\\\src\\\\components\\\\Login.js\",\n  _s = $RefreshSig$();\nimport React, { useState } from 'react';\nimport axios from 'axios';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nfunction Login() {\n  _s();\n  const [form, setForm] = useState({\n    username: '',\n    password: ''\n  });\n  const [msg, setMsg] = useState('');\n  const handleChange = e => setForm({\n    ...form,\n    [e.target.name]: e.target.value\n  });\n  const handleSubmit = async e => {\n    e.preventDefault();\n    try {\n      const res = await axios.post('http://localhost:4000/api/auth/login', form);\n      localStorage.setItem('token', res.data.token); // 토큰 저장\n      setMsg('로그인 성공!');\n    } catch (err) {\n      var _err$response, _err$response$data;\n      setMsg(((_err$response = err.response) === null || _err$response === void 0 ? void 0 : (_err$response$data = _err$response.data) === null || _err$response$data === void 0 ? void 0 : _err$response$data.msg) || '오류');\n    }\n  };\n  return /*#__PURE__*/_jsxDEV(\"article\", {\n    className: \"post featured\",\n    children: [/*#__PURE__*/_jsxDEV(\"header\", {\n      className: \"major\",\n      children: [/*#__PURE__*/_jsxDEV(\"span\", {\n        className: \"date\",\n        children: sensor.type\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 22,\n        columnNumber: 17\n      }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n        children: sensor.name\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 23,\n        columnNumber: 17\n      }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n        children: [sensor.value, \" / \", sensor.location]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 24,\n        columnNumber: 17\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 21,\n      columnNumber: 13\n    }, this), /*#__PURE__*/_jsxDEV(\"a\", {\n      className: \"image main\",\n      tabIndex: -1,\n      children: /*#__PURE__*/_jsxDEV(\"img\", {\n        src: sensor.image,\n        alt: sensor.name\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 27,\n        columnNumber: 17\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 26,\n      columnNumber: 13\n    }, this), /*#__PURE__*/_jsxDEV(\"ul\", {\n      className: \"actions special\",\n      children: /*#__PURE__*/_jsxDEV(\"li\", {\n        children: /*#__PURE__*/_jsxDEV(\"button\", {\n          type: \"button\",\n          className: \"button large\",\n          children: \"\\uC0C1\\uC138 \\uBCF4\\uAE30\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 31,\n          columnNumber: 21\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 30,\n        columnNumber: 17\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 29,\n      columnNumber: 13\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 20,\n    columnNumber: 13\n  }, this);\n}\n_s(Login, \"MD+/RF9ha0xqVJupiDUS863wztE=\");\n_c = Login;\nexport default Login;\nvar _c;\n$RefreshReg$(_c, \"Login\");","map":{"version":3,"names":["React","useState","axios","jsxDEV","_jsxDEV","Login","_s","form","setForm","username","password","msg","setMsg","handleChange","e","target","name","value","handleSubmit","preventDefault","res","post","localStorage","setItem","data","token","err","_err$response","_err$response$data","response","className","children","sensor","type","fileName","_jsxFileName","lineNumber","columnNumber","location","tabIndex","src","image","alt","_c","$RefreshReg$"],"sources":["D:/LDT/000 Project/LDT/Client/src/components/Login.js"],"sourcesContent":["import React, { useState } from 'react';\r\nimport axios from 'axios';\r\n\r\nfunction Login() {\r\n  const [form, setForm] = useState({ username: '', password: '' });\r\n  const [msg, setMsg] = useState('');\r\n  const handleChange = e => setForm({ ...form, [e.target.name]: e.target.value });\r\n  const handleSubmit = async e => {\r\n    e.preventDefault();\r\n    try {\r\n      const res = await axios.post('http://localhost:4000/api/auth/login', form);\r\n      localStorage.setItem('token', res.data.token); // 토큰 저장\r\n      setMsg('로그인 성공!');\r\n    } catch (err) {\r\n      setMsg(err.response?.data?.msg || '오류');\r\n    }\r\n  };\r\n  return (\r\n\r\n            <article className=\"post featured\">\r\n            <header className=\"major\">\r\n                <span className=\"date\">{sensor.type}</span>\r\n                <h2>{sensor.name}</h2>\r\n                <p>{sensor.value} / {sensor.location}</p>\r\n            </header>\r\n            <a className=\"image main\" tabIndex={-1}>\r\n                <img src={sensor.image} alt={sensor.name} />\r\n            </a>\r\n            <ul className=\"actions special\">\r\n                <li>\r\n                    <button type=\"button\" className=\"button large\">상세 보기</button>\r\n                </li>\r\n            </ul>\r\n        </article>\r\n  );\r\n}\r\n\r\nexport default Login;"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}