{"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(\"header\", {\n      className: \"major\",\n      children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n        children: \"\\uD68C\\uC6D0\\uAC00\\uC785\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 33,\n        columnNumber: 21\n      }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n        children: \"\\uC0C8\\uB85C\\uC6B4 \\uACC4\\uC815\\uC744 \\uC0DD\\uC131\\uD558\\uC138\\uC694.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 34,\n        columnNumber: 21\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 32,\n      columnNumber: 17\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(\"label\", {\n            htmlFor: \"username\",\n            children: \"\\uC544\\uC774\\uB514\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 39,\n            columnNumber: 29\n          }, this), /*#__PURE__*/_jsxDEV(\"input\", {\n            id: \"username\",\n            name: \"username\",\n            type: \"text\",\n            placeholder: \"\\uC544\\uC774\\uB514\",\n            value: form.username,\n            onChange: handleChange,\n            required: true,\n            autoFocus: true\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 40,\n            columnNumber: 29\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 38,\n          columnNumber: 25\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          className: \"field\",\n          children: [/*#__PURE__*/_jsxDEV(\"label\", {\n            htmlFor: \"email\",\n            children: \"\\uC774\\uBA54\\uC77C\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 52,\n            columnNumber: 29\n          }, this), /*#__PURE__*/_jsxDEV(\"input\", {\n            id: \"email\",\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: 53,\n            columnNumber: 29\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 51,\n          columnNumber: 25\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          className: \"field\",\n          children: [/*#__PURE__*/_jsxDEV(\"label\", {\n            htmlFor: \"password\",\n            children: \"\\uBE44\\uBC00\\uBC88\\uD638\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 64,\n            columnNumber: 29\n          }, this), /*#__PURE__*/_jsxDEV(\"input\", {\n            id: \"password\",\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: 65,\n            columnNumber: 29\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 63,\n          columnNumber: 25\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 37,\n        columnNumber: 21\n      }, this), /*#__PURE__*/_jsxDEV(\"ul\", {\n        className: \"actions special\",\n        style: {\n          marginTop: 24\n        },\n        children: /*#__PURE__*/_jsxDEV(\"li\", {\n          children: /*#__PURE__*/_jsxDEV(\"button\", {\n            type: \"submit\",\n            className: \"button primary\",\n            style: {\n              width: 120\n            },\n            children: \"\\uD68C\\uC6D0\\uAC00\\uC785\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 78,\n            columnNumber: 29\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 77,\n          columnNumber: 25\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 76,\n        columnNumber: 21\n      }, this), msg && /*#__PURE__*/_jsxDEV(\"div\", {\n        style: {\n          color: success ? \"#22b455\" : \"#e74c3c\",\n          background: \"#f9f9f9\",\n          borderRadius: 6,\n          marginTop: 18,\n          padding: \"10px 0\",\n          textAlign: \"center\",\n          fontWeight: 500,\n          letterSpacing: 1\n        },\n        children: msg\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 84,\n        columnNumber: 25\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 36,\n      columnNumber: 17\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 31,\n    columnNumber: 9\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","htmlFor","id","type","placeholder","onChange","required","autoFocus","style","marginTop","width","color","background","borderRadius","padding","textAlign","fontWeight","letterSpacing","_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                <header className=\"major\">\r\n                    <h2>회원가입</h2>\r\n                    <p>새로운 계정을 생성하세요.</p>\r\n                </header>\r\n                <form onSubmit={handleSubmit}>\r\n                    <div className=\"fields\">\r\n                        <div className=\"field\">\r\n                            <label htmlFor=\"username\">아이디</label>\r\n                            <input\r\n                                id=\"username\"\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                                autoFocus\r\n                            />\r\n                        </div>\r\n                        <div className=\"field\">\r\n                            <label htmlFor=\"email\">이메일</label>\r\n                            <input\r\n                                id=\"email\"\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                            <label htmlFor=\"password\">비밀번호</label>\r\n                            <input\r\n                                id=\"password\"\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\" style={{ marginTop: 24 }}>\r\n                        <li>\r\n                            <button type=\"submit\" className=\"button primary\" style={{ width: 120 }}>\r\n                                회원가입\r\n                            </button>\r\n                        </li>\r\n                    </ul>\r\n                    {msg && (\r\n                        <div\r\n                            style={{\r\n                                color: success ? \"#22b455\" : \"#e74c3c\",\r\n                                background: \"#f9f9f9\",\r\n                                borderRadius: 6,\r\n                                marginTop: 18,\r\n                                padding: \"10px 0\",\r\n                                textAlign: \"center\",\r\n                                fontWeight: 500,\r\n                                letterSpacing: 1\r\n                            }}\r\n                        >\r\n                            {msg}\r\n                        </div>\r\n                    )}\r\n                </form>\r\n        </section>\r\n    );\r\n}\r\n\r\nexport default Signup;\r\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}