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

[조혜진] Week11 #356

Conversation

MEGUMMY1
Copy link
Collaborator

요구사항

기본

  • 폴더 페이지에 필요한 “폴더 이름 변경”, “폴더 추가”, “폴더 공유”, “폴더 삭제”, “링크 삭제”, “폴더에 추가” 모달을 만들어 주세요.
  • “폴더 공유” 모달의 기능은 클릭시 ‘{호스트 주소}/shared/{currrentFolderId}’ 로 접속 가능한 주소를 공유 또는 클립보드에 복사 가능하게 해주세요.
  • 팀내 2 ~ 3명이 짝을 지어 페어프로그래밍으로 여러 모달을 만들 때 사용할 모달 컴포넌트를 만들어 주세요.
  • 카드에 있는 케밥 버튼을 클릭할 경우 보여야 할 팝오버를 만들어 주세요.
  • 모달, 팝오버에서 api를 사용하는 버튼 기능들은 추후 만듭니다.
  • Github에 위클리 미션 PR을 만들어 주세요.
  • React를 사용해 진행합니다.

주요 변경사항

  • 각 버튼 모달 추가
  • SNS 공유 추가

스크린샷

image
image
image
image

멘토에게

@MEGUMMY1 MEGUMMY1 requested a review from 13akstjq April 28, 2024 08:41
@MEGUMMY1 MEGUMMY1 added the 매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다. label Apr 28, 2024
import { toast, ToastContainer } from "react-toastify";
import "react-toastify/dist/ReactToastify.css";

function Modal({
Copy link
Collaborator

Choose a reason for hiding this comment

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

공통으로 사용할 수 있는 모달 컴포넌트를 정말 잘 만들어주셨네요!! 👍👍👍 현업에서도 비슷하게 사용하고 있답니다.

Comment on lines +37 to +39
if (inputValue.trim() !== "") {
setIsError(false);
} else setIsError(true);
Copy link
Collaborator

Choose a reason for hiding this comment

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

inputValue.trim() 값이 빈 문자열인 경우에는 false 아닌 경우에는 true를 리턴하고 싶다면 아래와 같이 작성할수도 있답니다!

Suggested change
if (inputValue.trim() !== "") {
setIsError(false);
} else setIsError(true);
setIsError(!!inputValue.trim());

<div className={styles.modal_background} onClick={onClose}>
<div className={styles.modal_container} onClick={(e) => e.stopPropagation()}>
<div className={styles.title_container}>
<h1 className={styles.title}>{title}</h1>
Copy link
Collaborator

Choose a reason for hiding this comment

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

모달의 타이틀을 h1로 가져가기에는 페이지에서 h1을 사용할 수 있어 무리가 있어 보입니다!

{btnText}
</button>
)}
{share && folderList && (
Copy link
Collaborator

Choose a reason for hiding this comment

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

이런 내용들까지 Modal 컴포넌트에 넣기보다는 메인 콘텐츠는 children 컴포넌트로 받아서 렌더링하는 구조로 작업한 후에 ShareModal 컴포넌트를 만들어서 children으로 넘겨주는 방식이 좋을 것 같습니다~! 요건 멘토링 시간에 이야기 나눠 볼게요!

</div>
)}
</div>
<img
Copy link
Collaborator

Choose a reason for hiding this comment

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

닫기버튼 모달 마지막에 위치시킨 것 좋네요! 접근성 측면에서 닫기 버튼은 마지막에 위치하는 것이 좋답니다.

Copy link
Collaborator

Choose a reason for hiding this comment

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

이미지 태그대신 버튼 태그를 사용하면 굳이 keydown 이벤트를 사용하지 않아도 될 것 같습니다!

align-items: center;
justify-content: center;
z-index: 10;
left: 0;
Copy link
Collaborator

Choose a reason for hiding this comment

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

보통 모달은 position: fixed 에 top, left, right, bottom 을 모두 0으로 주는 방식으로 작업을 많이 하는데요. 이렇게 작성할 경우 inset: 0; 으로 간단히 작성할 수 있습니다. top, left를 0으로 주고 width, height를 100%로 주는 것도 좋지만 더 간단히 작성할 수 있는 방법이 있으니 참고해주세요!

)}
{btnColor === "submit" && (
<button
className={`${styles.submit_button} ${isError ? styles.disabled : ""}`}
Copy link
Collaborator

Choose a reason for hiding this comment

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

disabled 처리는 클래스로 추가하는 것 대신 button 태그의 disabled 속성에 true를 주는 것 어떨까요?

<ul className={styles.list}>
{folderList &&
folderList.data.map((folder) => (
<li
Copy link
Collaborator

Choose a reason for hiding this comment

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

여러가지를 선택할 수 있는 스펙 같은 경우는 li태그에 작업하지 않고 input의 checkbox로 작업하는 것이 더 적절할 것 같습니다~!

@13akstjq 13akstjq merged commit bb8ec7e into codeit-bootcamp-frontend:part2-조혜진 Apr 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants