{"ast":null,"code":"import _objectSpread from\"D:/LDT/000 Project/LDT/Client/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\";import React,{useState}from'react';import axios from'axios';import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";function Login(){const[form,setForm]=useState({username:'',password:''});const[msg,setMsg]=useState('');const handleChange=e=>setForm(_objectSpread(_objectSpread({},form),{},{[e.target.name]:e.target.value}));const handleSubmit=async e=>{e.preventDefault();try{const res=await axios.post('http://localhost:4000/api/auth/login',form);localStorage.setItem('token',res.data.token);// 토큰 저장\nsetMsg('로그인 성공!');}catch(err){var _err$response,_err$response$data;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)||'오류');}};return/*#__PURE__*/_jsxs(\"form\",{onSubmit:handleSubmit,children:[/*#__PURE__*/_jsx(\"input\",{name:\"username\",placeholder:\"ID\",onChange:handleChange,required:true}),/*#__PURE__*/_jsx(\"input\",{name:\"password\",type:\"password\",placeholder:\"Password\",onChange:handleChange,required:true}),/*#__PURE__*/_jsx(\"button\",{type:\"submit\",children:\"\\uB85C\\uADF8\\uC778\"}),msg&&/*#__PURE__*/_jsx(\"div\",{children:msg})]});}export default Login;","map":{"version":3,"names":["React","useState","axios","jsx","_jsx","jsxs","_jsxs","Login","form","setForm","username","password","msg","setMsg","handleChange","e","_objectSpread","target","name","value","handleSubmit","preventDefault","res","post","localStorage","setItem","data","token","err","_err$response","_err$response$data","response","onSubmit","children","placeholder","onChange","required","type"],"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    <form onSubmit={handleSubmit}>\r\n      <input name=\"username\" placeholder=\"ID\" onChange={handleChange} required />\r\n      <input name=\"password\" type=\"password\" placeholder=\"Password\" onChange={handleChange} required />\r\n      <button type=\"submit\">로그인</button>\r\n      {msg && <div>{msg}</div>}\r\n    </form>\r\n  );\r\n}\r\n\r\nexport default Login;"],"mappings":"kHAAA,MAAO,CAAAA,KAAK,EAAIC,QAAQ,KAAQ,OAAO,CACvC,MAAO,CAAAC,KAAK,KAAM,OAAO,CAAC,OAAAC,GAAA,IAAAC,IAAA,CAAAC,IAAA,IAAAC,KAAA,yBAE1B,QAAS,CAAAC,KAAKA,CAAA,CAAG,CACf,KAAM,CAACC,IAAI,CAAEC,OAAO,CAAC,CAAGR,QAAQ,CAAC,CAAES,QAAQ,CAAE,EAAE,CAAEC,QAAQ,CAAE,EAAG,CAAC,CAAC,CAChE,KAAM,CAACC,GAAG,CAAEC,MAAM,CAAC,CAAGZ,QAAQ,CAAC,EAAE,CAAC,CAClC,KAAM,CAAAa,YAAY,CAAGC,CAAC,EAAIN,OAAO,CAAAO,aAAA,CAAAA,aAAA,IAAMR,IAAI,MAAE,CAACO,CAAC,CAACE,MAAM,CAACC,IAAI,EAAGH,CAAC,CAACE,MAAM,CAACE,KAAK,EAAE,CAAC,CAC/E,KAAM,CAAAC,YAAY,CAAG,KAAM,CAAAL,CAAC,EAAI,CAC9BA,CAAC,CAACM,cAAc,CAAC,CAAC,CAClB,GAAI,CACF,KAAM,CAAAC,GAAG,CAAG,KAAM,CAAApB,KAAK,CAACqB,IAAI,CAAC,sCAAsC,CAAEf,IAAI,CAAC,CAC1EgB,YAAY,CAACC,OAAO,CAAC,OAAO,CAAEH,GAAG,CAACI,IAAI,CAACC,KAAK,CAAC,CAAE;AAC/Cd,MAAM,CAAC,SAAS,CAAC,CACnB,CAAE,MAAOe,GAAG,CAAE,KAAAC,aAAA,CAAAC,kBAAA,CACZjB,MAAM,CAAC,EAAAgB,aAAA,CAAAD,GAAG,CAACG,QAAQ,UAAAF,aAAA,kBAAAC,kBAAA,CAAZD,aAAA,CAAcH,IAAI,UAAAI,kBAAA,iBAAlBA,kBAAA,CAAoBlB,GAAG,GAAI,IAAI,CAAC,CACzC,CACF,CAAC,CACD,mBACEN,KAAA,SAAM0B,QAAQ,CAAEZ,YAAa,CAAAa,QAAA,eAC3B7B,IAAA,UAAOc,IAAI,CAAC,UAAU,CAACgB,WAAW,CAAC,IAAI,CAACC,QAAQ,CAAErB,YAAa,CAACsB,QAAQ,MAAE,CAAC,cAC3EhC,IAAA,UAAOc,IAAI,CAAC,UAAU,CAACmB,IAAI,CAAC,UAAU,CAACH,WAAW,CAAC,UAAU,CAACC,QAAQ,CAAErB,YAAa,CAACsB,QAAQ,MAAE,CAAC,cACjGhC,IAAA,WAAQiC,IAAI,CAAC,QAAQ,CAAAJ,QAAA,CAAC,oBAAG,CAAQ,CAAC,CACjCrB,GAAG,eAAIR,IAAA,QAAA6B,QAAA,CAAMrB,GAAG,CAAM,CAAC,EACpB,CAAC,CAEX,CAEA,cAAe,CAAAL,KAAK","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}