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

Merged

Conversation

kuum97
Copy link
Collaborator

@kuum97 kuum97 commented Apr 28, 2024

요구사항

기본

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

주요 변경사항

  • 폴더 페이지의 각 버튼에 해당하는 모달을 공통 컴포넌트의 children프로퍼티로 만들었습니다.
  • 각 컴포넌트의 필요에 따라 폴더구조를 재구성하였습니다.

멘토에게

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

@kuum97 kuum97 requested a review from Jay-WKJun April 28, 2024 12:49
@kuum97 kuum97 self-assigned this Apr 28, 2024
@kuum97 kuum97 added 매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다. 미완성🫠 죄송합니다.. labels Apr 28, 2024
@kuum97 kuum97 removed the 미완성🫠 죄송합니다.. label Apr 29, 2024
Copy link
Collaborator

@Jay-WKJun Jay-WKJun left a comment

Choose a reason for hiding this comment

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

고생하셨습니다! 😁

  • 코드와 프로젝트를 다듬으려는 노력이 보여 좋았습니다. 👍
  • Modal 다루는 부분을 좀 더 고쳐봐도 좋을 것 같네요. 배우는게 많으실 겁니다.

@@ -0,0 +1,29 @@
import styles from "../../../../../../globalComponents/Modal/ModalChildren.module.css";
Copy link
Collaborator

Choose a reason for hiding this comment

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

폴더구조가 맥락별로 깔끔하게 바뀌었지만, 그 깊이가 어마어마해졌습니다 ㅋㅋㅋㅋㅋ

자주 있는 일인데요, TypeScript의 alias로 해결할 수 있습니다.
찾아보면 stackOverflow에 많이 있으니 한번 알아보시면 좋을 것 같습니다!

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

사실 저도 PR올리면서 이게 맞나 싶었는데 다음 과제가 프로젝트를 ts로 변경하는거여서 아래의 내용도 다 포함해서 리팩토링하고 다음 PR엔 깔끔하게 보이도록 하겠습니다.🥲

Comment on lines +15 to +26
const [onModal, setOnModal] = useState(false);
const [modalContent, setModalContent] = useState(null);

const handleClickModal = (actionType) => {
const actionTypes = {
deleteLink: <LinkDeleteForm />,
addLink: <LinkAddToFolderForm />,
};

setModalContent(actionTypes[actionType]);
setOnModal(true);
};
Copy link
Collaborator

Choose a reason for hiding this comment

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

Modal을 띄워주는 state와 Modal의 내용을 정해주는 state가 따로있네요.

하나만 있어도 될 것 같은데 줄여볼 수 있지 않을까요?

Copy link
Collaborator

Choose a reason for hiding this comment

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

DeleteModal, xxModal 등 여러 Modal이 있는데, 이 Modal 컴포넌트는 전혀 사용되지 않고 있네요.

Modal 컴포넌트 자체가 좀 더 확장성이 있어서 다른 구체화된 Modal 들의 수고를 덜어 줄 수 있지 않을까요?
확장을 위한 prop을 몇개 더 추가해줄 수도 있고, children에 구체화된 컴포넌트를 넣을 수도 있을 것 같네요.

Copy link
Collaborator

Choose a reason for hiding this comment

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

여러 xxForm들도 하나의 Form 컴포넌트로 추상화해서 사용하면 css나 로직의 중복을 줄일 수 있을 것 같네요.


useEffect(() => {
if (window.Kakao && !window.Kakao.isInitialized()) {
window.Kakao.init("a841341da0099a5d1291638b48030745");
Copy link
Collaborator

Choose a reason for hiding this comment

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

Kakao를 다루기 위한 Key가 그대로 노출 돼있네요.

현재는 상관없지만, 상용 앱이면 정말 위험합니다. (실제로 예전 회사에서 이거 때문에 AWS자원 2천만원 털렸습니다.)

카카오 뿐만아니라, 모든 비밀 key들에도 해당하는 내용입니다.

시스템 환경변수에 숨겨 저장하고 그것을 가져와 사용할 수 있도록 하는 습관을 들이는 것이 좋습니다.
DotEnv를 한번 찾아보세요.

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 +11 to +12
const currentUrl =
window.location.origin + location.pathname + location.search;
Copy link
Collaborator

Choose a reason for hiding this comment

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

currentUrl도 hook이나 함수로 숨겨서 제공해주면 코드가 더 깔끔해지겠네요.

@Jay-WKJun Jay-WKJun merged commit 38446cf into codeit-bootcamp-frontend:part2-권주현 May 10, 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