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

[조혜진] Week12 #374

Conversation

MEGUMMY1
Copy link
Collaborator

@MEGUMMY1 MEGUMMY1 commented May 3, 2024

요구사항

기본

  • TypeScript를 활용해 프로젝트의 필요한 곳에 타입을 명시해 주세요.
  • ‘/shared’, ‘/folder’ 페이지에 현재 폴더에서 검색어가 포함된 링크를 찾을 수 있는 링크 검색 기능을 만들어 주세요.
  • Github에 위클리 미션 PR을 만들어 주세요.
  • React를 사용해 진행합니다.

심화

  • 폴더 페이지에 상단에 있는 링크 추가하기 input이 화면에서 가려질 때 최하단에 고정해 주세요.

주요 변경사항

  • JS -> TS 마이그레이션
  • 링크 검색 기능

스크린샷

image
image

멘토에게

  • 시간이 부족해서... 심화는 구현하지 못 하였습니다.

@MEGUMMY1 MEGUMMY1 requested a review from 13akstjq May 3, 2024 12:56
@MEGUMMY1 MEGUMMY1 added the 매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다. label May 3, 2024
import styles from "./Cards.module.css";
import Modal from "../Modal/Modal";

function Cards({ items }) {
Copy link
Collaborator

Choose a reason for hiding this comment

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

아래처럼 props에 대한 타입들도 지정해주면 좋을 것 같아요.

Suggested change
function Cards({ items }) {
interface CardsProps {
items : Card[]
}
function Cards({ items } : CardsProps) {

};
}

type ModalType = "addFolder" | "share" | "edit" | "deleteFolder" | null;
Copy link
Collaborator

Choose a reason for hiding this comment

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

이런 modal 타입은 보통 상수로 작성하는 것이 일반적이니 참고해주세요 (e.g. ADD_FOLDER)

type ModalType = "addFolder" | "share" | "edit" | "deleteFolder" | null;

function FolderMain() {
const [activeButton, setActiveButton] = useState("전체");
Copy link
Collaborator

Choose a reason for hiding this comment

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

"전체" 라는 문자열도 공통으로 사용되고 있으니 상수로 관리해서 타입을 지정해주면 더 안전할 것 같습니다.


const initKakaoSDK = () => {
if (!window.Kakao.isInitialized()) {
window.Kakao.init("bab4fbe2388df19be8aee73ca45a5cef");
Copy link
Collaborator

Choose a reason for hiding this comment

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

이런 api 키는 노출이 되면 안되기 때문에 이런 키 값은 환경변수로 관리하는 것이 일반적이랍니다!

</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.

요런 부분은 button으로 작업하는게 적절할 것 같습니다!

setPopoverIndex(index);
};

const handleClosePopover = (e) => {
Copy link
Collaborator

Choose a reason for hiding this comment

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

이벤트 타입들도 지정해주면 좋을 것 같습니다.

height={24}
alt='close'
onClick={handleClearSearch}
tabIndex={0}
Copy link
Collaborator

Choose a reason for hiding this comment

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

tabIndex를 추가한 것 잘하셨습니다.👍
하지만 클릭 가능하다면 button태그를 사용하는 것이 가장 좋겠죠?!

onSubmit?: (value: string) => void;
}

interface Link {
Copy link
Collaborator

Choose a reason for hiding this comment

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

FolderMain.tsx에 같은 타입이 있는 것 같은데요. 여러 컴포넌트에서 공유할 수 있는 type폴더를 만들어 사용하면 좋을 것 같습니다.

@13akstjq
Copy link
Collaborator

13akstjq commented May 6, 2024

혜진님, 파트2 하시느라 고생 많으셨어요.

워낙 잘해주셔서 제가 코멘트 드리는 내용들이 많지 않았던 것 같았는데요..!
지금까지 배운 내용이나 제가 말씀드린 것들 참고하셔서 앞으로 파트 3,4에 더 성장하시길 바래요😊

@13akstjq 13akstjq merged commit 87f7160 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