Intro 😊
로그인과 회원가입을 구현했습니다.
저는 지금껏 로그인과 회원가입을 /login /register 처럼 다른 페이지를 만들 생각밖에 하지 않았는데 모달창이라는 기능이 존재한다는 것을 이번 기회에 알게되었습니다!
제 마음에 쏙 들어서 앞으로도 모달창을 잘 활용할 것 같아요

헤더에 있는 로그인과 회원가입을 클릭했을 때 나오게끔 구현했습니다!
헤더는 다른 팀원분이 만드신건데 잘 만드셨어요!🤗
로그인 😙

로그인을 클릭했을시에 나오는 모달창입니다.
ID와 Paaword로 구성되어있으며 SIGN IN을 통해 로그인을 할 수 있습니다.
또한, 카카오톡 로그인을 하기 위해 기능을 넣어주었는데 이 부분은 백엔드에서 작업 중이라 추후에 기록하도록 하겠습니다!


회원가입 😃

회원가입을 클릭했을시에 나오는 모달창입니다.
ID, Password, Password Check, NickName, Email로 구성되어있습니다.
REGISTER을 클릭하여 최종적으로 회원가입을 완료할 수 있습니다.





const emojiRegex = /[\uD800-\uDFFF]./g;
if (emojiRegex.test(userId)) {
setFailModalOpen(true);
setErrorMessage("이모티콘을 포함한 아이디는 사용할 수 없습니다.");
return;
}
if (emojiRegex.test(userNickname)) {
setFailModalOpen(true);
setErrorMessage("이모티콘을 포함한 닉네임은 사용할 수 없습니다.");
return;
}

코드 구성 😋
일단 성공과 실패 모달창은 이번 프로젝트에서 중복적으로 사용되기 때문에 당연히 component로 만들어주었고, 로그인과 회원가입도 component로 만들어주었습니다.

component의 사진을 보면 많은 파일이 존재하는데, 저 중에서 로그인과 회원가입에 관련된 코드는 다음과 같습니다.
function Modal({ width = "50%", height = "50%", children, ...rest }) {
return (
<MuiModal {...rest}>
<Box
sx={{
position: "absolute",
top: "50%",
left: "50%",
transform: "translate(-50%, -50%)",
width,
height,
bgcolor: "background.paper",
boxShadow: 24,
p: 0,
}}
>
{children}
</Box>
</MuiModal>
);
}
export default Modal;
다음과 같이 모달창의 틀을 잡아주어야합니다.
다른 모달창은 이 코드를 기반으로 렌더링됩니다.