{"ast":null,"code":"var _jsxFileName = \"D:\\\\LDT\\\\000 Project\\\\LDT\\\\Client\\\\src\\\\components\\\\Signup.js\",\n  _s = $RefreshSig$();\n// src/components/Signup.js\nimport React, { useState } from \"react\";\nimport axios from \"axios\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nfunction Signup() {\n  _s();\n  const [form, setForm] = useState({\n    username: \"\",\n    password: \"\",\n    email: \"\"\n  });\n  const [msg, setMsg] = useState(\"\");\n  const [success, setSuccess] = useState(false);\n  const handleChange = e => setForm({\n    ...form,\n    [e.target.name]: e.target.value\n  });\n  const handleSubmit = async e => {\n    e.preventDefault();\n    setMsg(\"\");\n    setSuccess(false);\n    try {\n      const res = await axios.post(\"http://localhost:4000/api/auth/register\", form);\n      setMsg(res.data.msg);\n      setSuccess(true);\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      setSuccess(false);\n    }\n  };\n  return /*#__PURE__*/_jsxDEV(\"section\", {\n    className: \"posts\",\n    children: /*#__PURE__*/_jsxDEV(\"article\", {\n      children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n        children: \"\\uD68C\\uC6D0\\uAC00\\uC785\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 33,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(\"form\", {\n        onSubmit: handleSubmit,\n        children: [/*#__PURE__*/_jsxDEV(\"div\", {\n          className: \"fields\",\n          children: [/*#__PURE__*/_jsxDEV(\"div\", {\n            className: \"field\",\n            children: /*#__PURE__*/_jsxDEV(\"input\", {\n              name: \"username\",\n              type: \"text\",\n              placeholder: \"\\uC544\\uC774\\uB514\",\n              value: form.username,\n              onChange: handleChange,\n              required: true\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 37,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 36,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n            className: \"field\",\n            children: /*#__PURE__*/_jsxDEV(\"input\", {\n              name: \"email\",\n              type: \"email\",\n              placeholder: \"\\uC774\\uBA54\\uC77C\",\n              value: form.email,\n              onChange: handleChange,\n              required: true\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 47,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 46,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n            className: \"field\",\n            children: /*#__PURE__*/_jsxDEV(\"input\", {\n              name: \"password\",\n              type: \"password\",\n              placeholder: \"\\uBE44\\uBC00\\uBC88\\uD638\",\n              value: form.password,\n              onChange: handleChange,\n              required: true\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 57,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 56,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 35,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(\"ul\", {\n          className: \"actions special\",\n          children: /*#__PURE__*/_jsxDEV(\"li\", {\n            children: /*#__PURE__*/_jsxDEV(\"button\", {\n              type: \"submit\",\n              className: \"button primary\",\n              children: \"\\uD68C\\uC6D0\\uAC00\\uC785\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 69,\n              columnNumber: 15\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 68,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 67,\n          columnNumber: 11\n        }, this), msg && /*#__PURE__*/_jsxDEV(\"div\", {\n          style: {\n            color: success ? \"green\" : \"red\",\n            marginTop: 12\n          },\n          children: msg\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 75,\n          columnNumber: 13\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 34,\n        columnNumber: 9\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 32,\n      columnNumber: 7\n    }, this)\n  }, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 31,\n    columnNumber: 5\n  }, this);\n}\n_s(Signup, \"MF+FG/wHy5RD32FvoKN3YLgjwgY=\");\n_c = Signup;\nexport default Signup;\nvar _c;\n$RefreshReg$(_c, \"Signup\");","map":{"version":3,"names":["React","useState","axios","jsxDEV","_jsxDEV","Signup","_s","form","setForm","username","password","email","msg","setMsg","success","setSuccess","handleChange","e","target","name","value","handleSubmit","preventDefault","res","post","data","err","_err$response","_err$response$data","response","className","children","fileName","_jsxFileName","lineNumber","columnNumber","onSubmit","type","placeholder","onChange","required","style","color","marginTop","_c","$RefreshReg$"],"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":";;AAAA;AACA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,OAAOC,KAAK,MAAM,OAAO;AAAC,SAAAC,MAAA,IAAAC,OAAA;AAE1B,SAASC,MAAMA,CAAA,EAAG;EAAAC,EAAA;EAChB,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAGP,QAAQ,CAAC;IAAEQ,QAAQ,EAAE,EAAE;IAAEC,QAAQ,EAAE,EAAE;IAAEC,KAAK,EAAE;EAAG,CAAC,CAAC;EAC3E,MAAM,CAACC,GAAG,EAAEC,MAAM,CAAC,GAAGZ,QAAQ,CAAC,EAAE,CAAC;EAClC,MAAM,CAACa,OAAO,EAAEC,UAAU,CAAC,GAAGd,QAAQ,CAAC,KAAK,CAAC;EAE7C,MAAMe,YAAY,GAAIC,CAAC,IACrBT,OAAO,CAAC;IAAE,GAAGD,IAAI;IAAE,CAACU,CAAC,CAACC,MAAM,CAACC,IAAI,GAAGF,CAAC,CAACC,MAAM,CAACE;EAAM,CAAC,CAAC;EAEvD,MAAMC,YAAY,GAAG,MAAOJ,CAAC,IAAK;IAChCA,CAAC,CAACK,cAAc,CAAC,CAAC;IAClBT,MAAM,CAAC,EAAE,CAAC;IACVE,UAAU,CAAC,KAAK,CAAC;IACjB,IAAI;MACF,MAAMQ,GAAG,GAAG,MAAMrB,KAAK,CAACsB,IAAI,CAC1B,yCAAyC,EACzCjB,IACF,CAAC;MACDM,MAAM,CAACU,GAAG,CAACE,IAAI,CAACb,GAAG,CAAC;MACpBG,UAAU,CAAC,IAAI,CAAC;IAClB,CAAC,CAAC,OAAOW,GAAG,EAAE;MAAA,IAAAC,aAAA,EAAAC,kBAAA;MACZf,MAAM,CAAC,EAAAc,aAAA,GAAAD,GAAG,CAACG,QAAQ,cAAAF,aAAA,wBAAAC,kBAAA,GAAZD,aAAA,CAAcF,IAAI,cAAAG,kBAAA,uBAAlBA,kBAAA,CAAoBhB,GAAG,KAAI,SAAS,CAAC;MAC5CG,UAAU,CAAC,KAAK,CAAC;IACnB;EACF,CAAC;EAED,oBACEX,OAAA;IAAS0B,SAAS,EAAC,OAAO;IAAAC,QAAA,eACxB3B,OAAA;MAAA2B,QAAA,gBACE3B,OAAA;QAAA2B,QAAA,EAAI;MAAI;QAAAC,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAI,CAAC,eACb/B,OAAA;QAAMgC,QAAQ,EAAEf,YAAa;QAAAU,QAAA,gBAC3B3B,OAAA;UAAK0B,SAAS,EAAC,QAAQ;UAAAC,QAAA,gBACrB3B,OAAA;YAAK0B,SAAS,EAAC,OAAO;YAAAC,QAAA,eACpB3B,OAAA;cACEe,IAAI,EAAC,UAAU;cACfkB,IAAI,EAAC,MAAM;cACXC,WAAW,EAAC,oBAAK;cACjBlB,KAAK,EAAEb,IAAI,CAACE,QAAS;cACrB8B,QAAQ,EAAEvB,YAAa;cACvBwB,QAAQ;YAAA;cAAAR,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OACT;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACC,CAAC,eACN/B,OAAA;YAAK0B,SAAS,EAAC,OAAO;YAAAC,QAAA,eACpB3B,OAAA;cACEe,IAAI,EAAC,OAAO;cACZkB,IAAI,EAAC,OAAO;cACZC,WAAW,EAAC,oBAAK;cACjBlB,KAAK,EAAEb,IAAI,CAACI,KAAM;cAClB4B,QAAQ,EAAEvB,YAAa;cACvBwB,QAAQ;YAAA;cAAAR,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OACT;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACC,CAAC,eACN/B,OAAA;YAAK0B,SAAS,EAAC,OAAO;YAAAC,QAAA,eACpB3B,OAAA;cACEe,IAAI,EAAC,UAAU;cACfkB,IAAI,EAAC,UAAU;cACfC,WAAW,EAAC,0BAAM;cAClBlB,KAAK,EAAEb,IAAI,CAACG,QAAS;cACrB6B,QAAQ,EAAEvB,YAAa;cACvBwB,QAAQ;YAAA;cAAAR,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OACT;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACC,CAAC;QAAA;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACH,CAAC,eACN/B,OAAA;UAAI0B,SAAS,EAAC,iBAAiB;UAAAC,QAAA,eAC7B3B,OAAA;YAAA2B,QAAA,eACE3B,OAAA;cAAQiC,IAAI,EAAC,QAAQ;cAACP,SAAS,EAAC,gBAAgB;cAAAC,QAAA,EAAC;YAEjD;cAAAC,QAAA,EAAAC,YAAA;cAAAC,UAAA;cAAAC,YAAA;YAAA,OAAQ;UAAC;YAAAH,QAAA,EAAAC,YAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA,OACP;QAAC;UAAAH,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACH,CAAC,EACJvB,GAAG,iBACFR,OAAA;UAAKqC,KAAK,EAAE;YAAEC,KAAK,EAAE5B,OAAO,GAAG,OAAO,GAAG,KAAK;YAAE6B,SAAS,EAAE;UAAG,CAAE;UAAAZ,QAAA,EAC7DnB;QAAG;UAAAoB,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OACD,CACN;MAAA;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACG,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACA;EAAC;IAAAH,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OACH,CAAC;AAEd;AAAC7B,EAAA,CA9EQD,MAAM;AAAAuC,EAAA,GAANvC,MAAM;AAgFf,eAAeA,MAAM;AAAC,IAAAuC,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}