import React, { useState } from 'react';
import { Link } from 'react-router-dom';
import { useNavigate } from 'react-router-dom';
import ButtonContainer from '../ButtonContainer/ButtonContainer';
import InputContainer from '../InputContainer/InputContainer';
import API from '../Config/Config';
import { SignUpData } from './SignUpData';
import './SignUp.scss';
function SignUp() {
const navigate = useNavigate();
const [inputValue, setInputValue] = useState({
userName: '',
userEmail: '',
userPassword: '',
userPhoneNumber: '',
userAddress: '',
});
const { userName, userEmail, userPassword, userPhoneNumber, userAddress } =
inputValue;
const [checkBoxActive, setCheckBoxActive] = useState(false);
const handleInput = event => {
const { name, value } = event.target;
setInputValue({
...inputValue,
[name]: value,
});
};
const isValidInput =
userName.length >= 1 &&
userPhoneNumber.length >= 1 &&
userAddress.length >= 1;
const isCheckBoxClicked = () => {
setCheckBoxActive(!checkBoxActive);
};
const emailReg = new RegExp('[a-zA-Z0-9.-]\\.[a-zA-Z]{2,6}$');
const passwordReg = new RegExp(
'^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[$@$!%*?&])(?=.*[0-9])[A-Za-z\\d$@$!%*?&]{8,45}'
);
const getIsActive =
emailReg.test(userEmail) &&
passwordReg.test(userPassword) &&
isValidInput &&
checkBoxActive;
const handleButtonValid = () => {
if (!getIsActive) {
alert('please fill in the blanks');
} else {
fetch(API.SIGN_UP, {
method: 'POST',
body: JSON.stringify({
name: inputValue.userName,
email: inputValue.userEmail,
password: inputValue.userPassword,
contact: inputValue.userPhoneNumber,
address: inputValue.userAddress,
}),
})
.then(response => response.json())
.then(result => {
if (result.message) {
navigate('/login');
} else {
alert('잘못된 정보입니다!');
}
});
}
};
(생략)
import React, { useState } from 'react';
import { Link } from 'react-router-dom';
import { useNavigate } from 'react-router-dom';
import ButtonContainer from '../ButtonContainer/ButtonContainer';
import InputContainer from '../InputContainer/InputContainer';
import API from '../Config/Config';
import { LoginData } from './LoginData';
import './Login.scss';
function Login({ setIsToken }) {
const navigate = useNavigate();
const [inputValue, setInputValue] = useState({
userEmail: '',
userPassword: '',
});
const { userEmail, userPassword } = inputValue;
const handleInput = event => {
const { name, value } = event.target;
setInputValue({
...inputValue,
[name]: value,
});
};
const getIsActive = userEmail.length >= 1 && userPassword.length >= 1;
const handleButtonValid = () => {
if (!getIsActive) {
alert('please write a password or email address');
} else {
fetch(API.LOG_IN, {
method: 'POST',
body: JSON.stringify({
email: inputValue.userEmail,
password: inputValue.userPassword,
}),
})
.then(response => response.json())
.then(result => {
if (result.message === 'success') {
localStorage.setItem('access_token', result.token);
setIsToken(true);
navigate('/');
} else {
alert('잘못된 정보입니다!');
}
});
}
};
(생략)
import React, { useState } from 'react';
import { Link } from 'react-router-dom';
import { useNavigate } from 'react-router-dom';
import InputContainer from '../InputContainer/InputContainer';
import ButtonContainer from '../ButtonContainer/ButtonContainer';
import API from '../Config/Config';
import { FindIdData } from './FindIdData';
import './FindId.scss';
function FindId() {
const navigate = useNavigate();
const [inputValue, setInputValue] = useState({
userName: '',
userPhoneNumber: '',
});
const { userName, userPhoneNumber } = inputValue;
const handleInput = event => {
const { name, value } = event.target;
setInputValue({
...inputValue,
[name]: value,
});
};
const getIsActive = userName.length >= 1 && userPhoneNumber.length >= 1;
const handleButtonValid = () => {
if (!getIsActive) {
alert('please fill in the blanks');
} else {
fetch(API.FIND_ID, {
method: 'POST',
body: JSON.stringify({
name: inputValue.userName,
contact: inputValue.userPhoneNumber,
}),
})
.then(res => res.json())
.then(res => {
if (res.result?.[0]) {
navigate('/print-email', { state: res.result[0] });
console.log(res.result[0]);
} else {
alert('잘못된 정보입니다!');
}
});
}
};
(생략)