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 #386

Conversation

juan0444
Copy link
Collaborator

@juan0444 juan0444 commented May 5, 2024

요구사항

기본

  • 폴더 페이지에 필요한 “폴더 이름 변경”, “폴더 추가”, “폴더 공유”, “폴더 삭제”, “링크 삭제”, “폴더에 추가” 모달을 만들어 주세요.
  • “폴더 공유” 모달의 기능은 클릭시 ‘{호스트 주소}/shared/{currrentFolderId}’ 로 접속 가능한 주소를 공유 또는 클립보드에 복사 가능하게 해주세요.
  • 카드에 있는 케밥 버튼을 클릭할 경우 보여야 할 팝오버를 만들어 주세요.

주요 변경사항

  • 폴더 구조를 변경했습니다.

스크린샷

image

멘토에게

  • 타입스크립트로 아직 완성을 못했습니다 못한 부분은 최대한 빨리 추가하도록 하겠습니다!

  • components 폴더에 index.js 파일을 만들어서 컴포넌트들을 전부 export하고 컴포넌트를 사용할 때 경로를
    import { NavigationBar } from "components"로 폴더명만 작성하면 된다고 알고 있었는데 찾을 수 없다고 에러가 발생해서
    "../components"로 변경했습니다. 어느 부분이 문제인지 알고 싶습니다.

    읽어주셔서 감사합니다.

  • 셀프 코드 리뷰를 통해 질문 이어가겠습니다.

@juan0444 juan0444 requested a review from devym-37 May 5, 2024 14:51
@juan0444 juan0444 added 매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다. 미완성🫠 죄송합니다.. labels May 5, 2024
@juan0444 juan0444 changed the title [이주안] Week12 [이주안] Week11 May 5, 2024
@juan0444 juan0444 changed the title [이주안] Week11 [이주안] Week12 May 5, 2024
@juan0444 juan0444 changed the title [이주안] Week12 [이주안] Week11 May 5, 2024
Copy link
Collaborator

@devym-37 devym-37 left a comment

Choose a reason for hiding this comment

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

잘 작성해주셨습니다! 👍
질문 주신 부분은 절대경로로 인식되도록 되지 않아서 import 오류가 난 것 같습니다.
해당 프로젝트 절대경로 세팅이 되어 있는지 확인해주시면 좋을 것 같습니다!
고생하셨습니다!

// 모달 영역 밖 클릭 시 닫기
useEffect(() => {
const handleModal = (event) => {
if (modal && !modalRef.current.contains(event.target)) {
Copy link
Collaborator

Choose a reason for hiding this comment

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

modalRef가 초기에 null이기에 modalRef.current?.contains ?.를 사용하시는 것이 좋습니다

starImage === STAR_ICON
? setStarImage(COLOR_STAR_ICON)
: setStarImage(STAR_ICON);
};
Copy link
Collaborator

Choose a reason for hiding this comment

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

setStarImage(starImage === STAR_ICON ? COLOR_STAR_ICON : STAR_ICON) 이렇게 가능하실 것 같습니다

folderId,
setFolderId,
}) => {
let hasCards = false;
Copy link
Collaborator

Choose a reason for hiding this comment

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

useState값이 아닌, let으로 사용하신 이유가 있으실까요 ?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

useState를 사용했을 때 제가 카드를 구현한 방식이 folderId === item.folder_id 일 때마다 계속 true로 변경하게 만들어서 아래와 같은 경고가 발생했습니다.
해결을 못해서 let으로 해두었는데 카드 구현 방식을 다시 생각해 봐야 할 것 같습니다.

Too many re-renders. React limits the number of renders to prevent an infinite loop.

const handleClick = () => {
setAddModal(true);
};

Copy link
Collaborator

Choose a reason for hiding this comment

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

function 과 화살표함수를 섞어쓰셨는데, 하나로 통일해주시는 것이 좋을 것 같습니다

text: "인스타그램 바로가기 아이콘",
},
];

Copy link
Collaborator

Choose a reason for hiding this comment

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

그룹화로 잘 작성해주신 것 같습니다 👍

className={cx("input-text")}
type="search"
placeholder="링크를 추가해 보세요."
></input>
Copy link
Collaborator

Choose a reason for hiding this comment

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

input 의 경우 단일태그로 작성하실 수 있을 것 같습니다

text === "삭제" && setDeleteModal(true);
text === "이름 변경" && setAddModal(true);
text === "공유" && setShareModal(true);
};
Copy link
Collaborator

Choose a reason for hiding this comment

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

동시에 팝업이 열릴 가능성은 없는걸까요 ?


const cx = classNames.bind(styles);

export const NavUserProfile = ({ user }) => {
Copy link
Collaborator

Choose a reason for hiding this comment

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

추후에는 해당 컴포넌트에서 필요한 데이터만 props로 받도록 하는것이 좋습니다.
name / profileImage만 받는 형식이 되는 것입니다.
해당 컴포넌트는 잘 작성해주셨습니다


export const FolderPage = () => {
const [user, setUser] = useState([]);
const [Links, setLinks] = useState([]);
Copy link
Collaborator

Choose a reason for hiding this comment

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

Links 대문자보다는 소문자로 시작하시는 것이 좋습니다

@devym-37 devym-37 merged commit 661e8ff into codeit-bootcamp-frontend:part2-이주안 May 6, 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