{"ast":null,"code":"import _objectSpread from\"D:/LDT/000 Project/LDT/Client/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\";// src/components/Signup.js\nimport React,{useState}from\"react\";import axios from\"axios\";import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";function Signup(){const[form,setForm]=useState({username:\"\",password:\"\",email:\"\"});const[msg,setMsg]=useState(\"\");const[success,setSuccess]=useState(false);const handleChange=e=>setForm(_objectSpread(_objectSpread({},form),{},{[e.target.name]:e.target.value}));const handleSubmit=async e=>{e.preventDefault();setMsg(\"\");setSuccess(false);try{const res=await axios.post(\"http://localhost:4000/api/auth/register\",form);setMsg(res.data.msg);setSuccess(true);}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)||\"회원가입 실패\");setSuccess(false);}};return/*#__PURE__*/_jsx(\"section\",{className:\"posts\",children:/*#__PURE__*/_jsxs(\"article\",{children:[/*#__PURE__*/_jsx(\"h2\",{children:\"\\uD68C\\uC6D0\\uAC00\\uC785\"}),/*#__PURE__*/_jsxs(\"form\",{onSubmit:handleSubmit,children:[/*#__PURE__*/_jsxs(\"div\",{className:\"fields\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"field\",children:/*#__PURE__*/_jsx(\"input\",{name:\"username\",type:\"text\",placeholder:\"\\uC544\\uC774\\uB514\",value:form.username,onChange:handleChange,required:true})}),/*#__PURE__*/_jsx(\"div\",{className:\"field\",children:/*#__PURE__*/_jsx(\"input\",{name:\"email\",type:\"email\",placeholder:\"\\uC774\\uBA54\\uC77C\",value:form.email,onChange:handleChange,required:true})}),/*#__PURE__*/_jsx(\"div\",{className:\"field\",children:/*#__PURE__*/_jsx(\"input\",{name:\"password\",type:\"password\",placeholder:\"\\uBE44\\uBC00\\uBC88\\uD638\",value:form.password,onChange:handleChange,required:true})})]}),/*#__PURE__*/_jsx(\"ul\",{className:\"actions special\",children:/*#__PURE__*/_jsx(\"li\",{children:/*#__PURE__*/_jsx(\"button\",{type:\"submit\",className:\"button primary\",children:\"\\uD68C\\uC6D0\\uAC00\\uC785\"})})}),msg&&/*#__PURE__*/_jsx(\"div\",{style:{color:success?\"green\":\"red\",marginTop:12},children:msg})]})]})});}export default Signup;","map":{"version":3,"names":["React","useState","axios","jsx","_jsx","jsxs","_jsxs","Signup","form","setForm","username","password","email","msg","setMsg","success","setSuccess","handleChange","e","_objectSpread","target","name","value","handleSubmit","preventDefault","res","post","data","err","_err$response","_err$response$data","response","className","children","onSubmit","type","placeholder","onChange","required","style","color","marginTop"],"sources":["D:/LDT/000 Project/LDT/Client/src/components/Signup.js"],"sourcesContent":["// src/components/Signup.js\r\nimport React, { useState } from \"react\";\r\nimport axios from \"axios\";\r\n\r\nfunction Signup() {\r\n  const [form, setForm] = useState({ username: \"\", password: \"\", email: \"\" });\r\n  const [msg, setMsg] = useState(\"\");\r\n  const [success, setSuccess] = useState(false);\r\n\r\n  const handleChange = (e) =>\r\n    setForm({ ...form, [e.target.name]: e.target.value });\r\n\r\n  const handleSubmit = async (e) => {\r\n    e.preventDefault();\r\n    setMsg(\"\");\r\n    setSuccess(false);\r\n    try {\r\n      const res = await axios.post(\r\n        \"http://localhost:4000/api/auth/register\",\r\n        form\r\n      );\r\n      setMsg(res.data.msg);\r\n      setSuccess(true);\r\n    } catch (err) {\r\n      setMsg(err.response?.data?.msg || \"회원가입 실패\");\r\n      setSuccess(false);\r\n    }\r\n  };\r\n\r\n  return (\r\n    <section className=\"posts\">\r\n      <article>\r\n        <h2>회원가입</h2>\r\n        <form onSubmit={handleSubmit}>\r\n          <div className=\"fields\">\r\n            <div className=\"field\">\r\n              <input\r\n                name=\"username\"\r\n                type=\"text\"\r\n                placeholder=\"아이디\"\r\n                value={form.username}\r\n                onChange={handleChange}\r\n                required\r\n              />\r\n            </div>\r\n            <div className=\"field\">\r\n              <input\r\n                name=\"email\"\r\n                type=\"email\"\r\n                placeholder=\"이메일\"\r\n                value={form.email}\r\n                onChange={handleChange}\r\n                required\r\n              />\r\n            </div>\r\n            <div className=\"field\">\r\n              <input\r\n                name=\"password\"\r\n                type=\"password\"\r\n                placeholder=\"비밀번호\"\r\n                value={form.password}\r\n                onChange={handleChange}\r\n                required\r\n              />\r\n            </div>\r\n          </div>\r\n          <ul className=\"actions special\">\r\n            <li>\r\n              <button type=\"submit\" className=\"button primary\">\r\n                회원가입\r\n              </button>\r\n            </li>\r\n          </ul>\r\n          {msg && (\r\n            <div style={{ color: success ? \"green\" : \"red\", marginTop: 12 }}>\r\n              {msg}\r\n            </div>\r\n          )}\r\n        </form>\r\n      </article>\r\n    </section>\r\n  );\r\n}\r\n\r\nexport default Signup;"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}