-
Notifications
You must be signed in to change notification settings - Fork 7
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
[SP0] Recruit 탭 추가 #157
[SP0] Recruit 탭 추가 #157
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
첫 코드 리뷰입니다! 🥳
처음으로 공홈 코드를 봤는데 아무래도 여러 개발자가 오랫동안 개발하다 보니 코드의 통일감이 많이 떨어지는 것 같습니다. 앞으로 다른 기수들도 들어오고 더 많은 사람이 공홈을 개발하게 될 것을 고려한다면 3기에서 한 번 컨벤션을 잡고 가는 게 좋을 것 같습니다!
리크루팅 페이지 개발 고생하셨습니다~! 서진 짱
추가로 ActivityReview
관련 코드는 MainPage
와 RecruitPage
에서 중복되는 게 많아서 하나로 통일해도 좋을 것 같아요~
&:last-child { | ||
&::after { | ||
width: calc(100% + 40px); | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
comment;
해당 코드가 왜 필요한가 하고 살펴보니 MenuTitle
에서 마지막 요소를 제외하고 padding-right
를 줘서 메뉴간 간격을 주고 있기 때문이네요.
&:not(:last-child) {
padding-right: 40px;
}
not 선택자를 제거하고 MenuTitle
에 padding-right: 40px
를 주면 해당 코드를 작성해주지 않아도 될 것 같아요.
그런데 요소간 간격을 줄 때 padding-right
를 주기 보다는 display: flex
가 지정되어 있으니 gap
을 활용해도 좋을 것 같습니다.
} | ||
`, | ||
}; | ||
export { default } from '@src/views/RecruitPage'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
question;
@src/views/RecruitPage/RecruitPage
에 구현 사항 작성 후 @src/views/RecruitPage/index
와 해당 파일에서 두 차례 re-export를 하는 것으로 파악했습니다.
해당 파일에 구현 사항을 직접적으로 작성하지 않고 이런 구조를 채택한 이유가 궁금합니다!
align-items: center; | ||
justify-content: space-between; | ||
/* align-items: center; */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
suggestion;
79번째 줄과 겹치는 코드여서 주석을 지워도 괜찮을 거 같아요.
import { ActivityReview } from './components/ActivityReview/ActivityReview'; | ||
import ChapterInfo from './components/ChapterInfo'; | ||
import Contact from './components/Contact'; | ||
import FaqInfo from './components/FAQ'; | ||
import NotificationSection from './components/NotificationSection'; | ||
import RecruiteeInfo from './components/RecruteeInfo'; | ||
import Schedule from './components/Schedule'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
comment;
components
폴더 밑에 index.ts
파일을 만들어서 한번에 import 해도 좋을 것 같아요.
views
의 다른 페이지 폴더들을 보니 그렇게 하는 곳도 있고 아닌 곳도 있네요.
const Contact = () => { | ||
return ( | ||
<div> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
suggestion;
div
의 용도가 감싸주는 것이라면 Fragment
를 사용해도 괜찮지 않을까요?
return ( | ||
<W> | ||
<Wrapper> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
question;
이 W는 Wrapper를 의미하는 건가요?
만일 맞다면 자식 컴포넌트의 Wrapper랑 겹치기도 하고, 의미 파악이 어려운 것 같아 좀 더 명확하게 바꾸는 게 좋을 것 같습니다!
const allTabs: ExtraTabType[] = [ | ||
{ | ||
value: PartExtraType.ALL, | ||
label: '전체', | ||
}, | ||
{ | ||
value: Part.PLAN, | ||
label: '기획', | ||
}, | ||
{ | ||
value: Part.DESIGN, | ||
label: '디자인', | ||
}, | ||
{ | ||
value: Part.ANDROID, | ||
label: '안드로이드', | ||
}, | ||
{ | ||
value: Part.IOS, | ||
label: 'iOS', | ||
}, | ||
{ | ||
value: Part.WEB, | ||
label: '웹', | ||
}, | ||
{ | ||
value: Part.SERVER, | ||
label: '서버', | ||
}, | ||
]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
suggestion;
tabs
배열과 중복되는 요소가 많은 것 같은데 다음과 같이 작성해도 되지 않을까요?
const allTabs: ExtraTabType[] = [ | |
{ | |
value: PartExtraType.ALL, | |
label: '전체', | |
}, | |
{ | |
value: Part.PLAN, | |
label: '기획', | |
}, | |
{ | |
value: Part.DESIGN, | |
label: '디자인', | |
}, | |
{ | |
value: Part.ANDROID, | |
label: '안드로이드', | |
}, | |
{ | |
value: Part.IOS, | |
label: 'iOS', | |
}, | |
{ | |
value: Part.WEB, | |
label: '웹', | |
}, | |
{ | |
value: Part.SERVER, | |
label: '서버', | |
}, | |
]; | |
const allTabs: ExtraTabType[] = [ | |
{ | |
value: PartExtraType.ALL, | |
label: '전체', | |
}, | |
...tabs, | |
]; |
코드를 넓게넓게 봐주셨군요 .!! 값진 리뷰들 잘 받았습니다!!! 둘이 같은 컴포넌트를 쓰지 못하는 데에는 슬픈 사연이 있어요 .. 고치려면 어떻게 고쳐볼 수는 있지만, 그럼 PR 크기가 커지기도 하고 주 로직보다 다른 부분 변경사항이 더 많아질 것 같은 느낌이 듭니다 ..!!
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
안녕하세요! @solar3070 혜준언니의 코드리뷰 방식이 좋은 것 같아서 저도 suggestion; / comment; 방식에 따라서 코드리뷰를 진행해보았습니다!
이 pr만 보고 전체적인 코드 구조를 리뷰하는 건 어려울 것 같아서 중복되는 코드들에 대한 코멘트만 남겨보았습니다!! 공홈팀 화이팅✨
/* 태블릿 뷰 */ | ||
@media (max-width: 1199px) and (min-width: 766px) { | ||
margin-top: 90px; | ||
} | ||
/* 모바일 뷰 */ | ||
@media (max-width: 765.9px) { | ||
margin-top: 90px; | ||
} | ||
`; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
comment;
데스크톱/태블릿/모바일 미디어 쿼리 코드를 독립된 파일로 관리해도 좋을 것 같아요~!
// mediaQuery.ts
/* Desktop (해상도 1200px 이상)*/
const desktopQeury = () => `@media all and (min-width:1200px)`;
/* 테블릿 가로, 테블릿 세로 (해상도 766px ~ 1199px)*/
const tabletQeury = () => `@media all and (min-width:766px) and (max-width:1199px)`;
/* 모바일 가로, 모바일 세로 (해상도 765px 이하)*/
const mobileQeury = () => `@media all and (max-width:765px)`;
export const media = {
desktop: desktopQeury,
tablet: tabletQeury,
mobile: mobileQeury,
};
${media.tablet} {
margin-top: 90px;
}
${media.mobile} {
margin-top: 90px;
}
border: none; | ||
background-color: transparent; | ||
color: white; | ||
font-family: SUIT; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
suggestion;
styles/font.ts
에 있는 font 속성들을 styles/global.ts
에서 불러오던데 font-family: SUIT;
와 같은 속성은 불필요하게 불러오는 것 같아요!
{parsePartToKorean(review.part)}파트 {review.semester}기{'\n'} | ||
<DescName>{review.reviewer}</DescName> | ||
</Desc> | ||
<Arrow src={arrowRightWhite} alt="" /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
question;
import로 arrowRightWhite만 ReactComponent로 불러오지 않은 이유가 있나요? alt 속성도 부여하면 좋을 것 같아요!
import { ReactComponent as ArrowLeft } from '@src/views/MainPage/assets/arrow-left-28x28.svg';
import { ReactComponent as ArrowRight } from '@src/views/MainPage/assets/arrow-right-28x28.svg';
import arrowRightWhite from '@src/views/MainPage/assets/arrow_right_white.svg';
return ( | ||
<Wrapper> | ||
<Chip>YB RECRUITING</Chip> | ||
<div style={{ height: '13px' }} /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
question;
해당 줄에 inline-style을 사용한 이유가 있나요?
Summary
Screenshot
sopt.org/recruit
에 이미 배포되엇씁니다 ..
Comment