import React, { FormEvent, useEffect, useState } from "react"; import { Link, useNavigate } from "react-router-dom"; import { authApi } from "../apis"; import { catchErrors } from "../helpers"; import { SignupUser } from "../types"; export default function Signup() { const [user, setUser] = useState({ name: "", email: "", password: "", password2: "", }); const [loading, setLoading] = useState(false); const [error, setError] = useState(""); const [disabled, setDisabled] = useState(false); const [success, setSuccess] = useState(false); const navigate = useNavigate(); useEffect(() => { setDisabled(!(user.name && user.email && user.password && user.password2)); }, [user]); function handleChange(event: React.ChangeEvent) { const { name, value } = event.currentTarget; console.log(`name: ${name}, value: ${value}`); setUser({ ...user, [name]: value }); } async function handleSubmit(event: FormEvent) { event.preventDefault(); try { console.log("checkPassword:", passwordMatch()); console.log("user data", user); if (passwordMatch()) { const { password2, ...sUser } = user; const res = await authApi.signup(sUser); console.log("서버연결됬나요", res); console.log("회원가입"); setSuccess(true); setError(""); } } catch (error) { console.log("에러발생"); catchErrors(error, setError); } finally { setLoading(false); } } function passwordMatch() { if (user.password !== user.password2) { alert("비밀번호가 일치하지않습니다"); console.log("password fail"); return false; } else { console.log("password match"); return true; } } if (success) { alert("회원가입 되었습니다"); navigate("/login", { replace: true }); } return (
Travel Report
); }