Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

모달 컴포넌트 생성 완료 #12

Merged
merged 3 commits into from
Sep 30, 2023

Conversation

GhoRid
Copy link
Contributor

@GhoRid GhoRid commented Sep 29, 2023

  1. 모달 컴포넌트 생성 완료
    ModalTemplat을 기준으로 버튼 1개일 때, 버튼 2개일 때 따로 작성
    ->ModalType에 따라 다른 모달창 띄우기
  • 버튼 1개
    . 인스타 연동 모달
    . 로그인 안내 모달
    . 폭죽 보내기 모달
    . 신고 접수 완료 모달
  • 버튼 2개
    . 폭죽 부족 안내 모달
    . 신고하기 모달
    . 계정 탈퇴 모달
    . 로그아웃 모달
    -> 모달이 어떤 것인지 지정하면 버튼의 색상과 텍스트가 알아서 설정됨.
    -> 로그인 모달일 경우 modalType="login" 버튼 색상이 노란색, 글자색 검정색, 버튼 내 텍스트 자동 지정
  1. Portal 적용 완료
    (모달태그)
    페이지 컴포넌트에서 다음과 같이 Layout 태그 바깥에 ModalPortal로 감싸주어 모달을 불러오게 함.
    -> 장점: root 바깥에 modal이 존재하기 때문에 스타일링 영향을 받지 않음

image

  1. 제가 열심히 commit 해놨는데 뭔가 꼬였는지.... feature finish가 안 되더라구요. 그래서 이리저리 만지며 해결했더니 commit 기록이 다 날라갔어요....... 진짜 commit 많이 찍었는데...

1. 버튼에 출력되는 이미지 경로 설정 (완석님이 올린 사진에 맞춰서)
2. 모달창에 출력될 텍스트 글씨체 변경 (ModalPortal 사용으로 인해
   root에서 Modal이  벗어남이 원인)
Merge branch 'weekly' of https://github.com/GhoRid/Team14_FE into weekly
@@ -0,0 +1,6 @@
import ReactDOM from "react-dom";

export const ModalPortal = ({ children }) => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

portal 👍

document.removeEventListener("mousedown", modalListener);
};
}, [$isVisibleModal, handleShowModal]);

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

멘토님께 모달 구현 잘 된건지 여쭤볼까요?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

넹 꼭이요... 만들면서도 이게 맞나 싶어서..


const [buttonText, setButtonText] = useState("");
const [logoImg, setLogoImg] = useState("");

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

버튼 안에 들어갈 내용은 화면이 변할 필요가 없으니 state로 관리하지 않아도 될 것 같다고 생각해요!
버튼은 제가 만든 걸 사용하는게 어떨까요?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

내용을 직접 받아서 쓰는 건 모달을 사용할 때 입력할 값이 너무 많아져서(함수, 텍스트, 상태 등등,..) 일부러 Type에 따라 알아서 바뀌게 해놓았습니다. Type에 따라 바뀌게 하려면 당장 state밖에 생각나지 않아서 이대로 했는데 회의할 때 다시 얘기해보아용

}, [$modalType])

return (
<ModalTemplate handleShowModal={handleShowModal} $isVisibleModal={$isVisibleModal}>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

handle로 컨벤션 맞추기로 했었는데
저는 까먹고 onClick으로 썼었네요. ㅋㅋㅋㅋ 고쳐야겠어요.
덕분에 알아갑니당!

return "black";
default:
return "white";
}}};
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

요런 경우엔 삼항 연산자가 더 나을 수도 있을 것 같습니다!

`;

const TwoBtnModal = ( { handleShowModal, $isVisibleModal, $modalType, execution, children} ) => {
// 모달 타입 4개
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

버튼 1개, 2개로 모달을 두 개 만드는 방식도 있지만,
모달의 버튼에 위치하는 영역을 flex로 만들어서 1개는 그대로 받고 2개는 gap으로 떨어뜨려 받는 방식을 생각해볼 수도 있겠습니다!
사실 상상만 해봐서 직접해봐야 알것 같긴 합니다. 저도 한 번 모달 구현해볼까요?!

</IconButton>
<>
<Layout>

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

슬쩍 실제 적용한 예시도 남겨주시면 더 이해하기 쉬울 것 같습니다!!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아 그게 PR에 있는 내용이겠네요!! ㅋㅋㅋㅋ 죄송합니다.

@GhoRid GhoRid changed the title Weekly 모달 컴포넌트 생성 완료 Sep 30, 2023
@GhoRid GhoRid merged commit b5fec5f into Step3-kakao-tech-campus:weekly Sep 30, 2023
@GhoRid GhoRid added Type: Feature 기능 개발 Type: Design CSS 등 사용자 UI 디자인 변경 labels Oct 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Design CSS 등 사용자 UI 디자인 변경 Type: Feature 기능 개발
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants