{"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      className: \"post featured\",\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: 34,\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: 35,\n          columnNumber: 21\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 33,\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: 40,\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: 41,\n              columnNumber: 29\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 39,\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: 53,\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: 54,\n              columnNumber: 29\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 52,\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: 65,\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: 66,\n              columnNumber: 29\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 64,\n            columnNumber: 25\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 38,\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: 79,\n              columnNumber: 29\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 78,\n            columnNumber: 25\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 77,\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: 85,\n          columnNumber: 25\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 37,\n        columnNumber: 17\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 32,\n      columnNumber: 13\n    }, this)\n  }, void 0, false, {\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            <article className=\"post featured\">\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            </article>\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":[]}