Skip to content

Conversation

@kimzini
Copy link
Collaborator

@kimzini kimzini commented Nov 3, 2024

1️⃣ 작업 내용 Summary📱💎

  • resolved #(issue_num)

기존 코드에 영향을 미치지 않는 변경사항

기존 코드에 영향을 미치는 변경사항

✚ 작업 내용 스크린 샷📸

2️⃣ 리뷰어에게 공유할 내용👥

3️⃣ 추후 작업할 내용👋

  • main 브랜치의 최신 코드를 pull 받았나요?

runs-on: ubuntu-latest
container: pandoc/latex
steps:
- uses: actions/checkout@v2

Choose a reason for hiding this comment

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

Suggested change
- uses: actions/checkout@v2
- uses: actions/checkout@v4

최신 버전을 이용하지 않으신 이유가 있나요?

Choose a reason for hiding this comment

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

이 위계에 해당 파일이 적절한지 잘 모르겠어요

Choose a reason for hiding this comment

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

컨테이너라는 디렉터리의 사용 이유가 궁금해요

이전의 컨테이너 프레젠터 패턴이 떠올라서요

해당 패턴은 현재는 사용을 권장하지 않아요

Comment on lines 46 to 55
const handleImageClick = () => {
if (isThumbnailShow) {
setIsAnimating(false);
setTimeout(() => {
setIsThumbnailShow(false);
}, 300);
} else {
setIsThumbnailShow(true);
}
};

Choose a reason for hiding this comment

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

해당 부분에서 여러 클린 코드 패턴을 적용해 볼 수 있을 거 같은데요

  1. 얼리 리턴을 이용해 인덴트 깊이를 줄일 수 있을 것 같고
  2. 300과 같은 매직 스트링을 변수로 선언해 코드에 의미를 부여할 수 있을 거 같아요

Comment on lines +7 to +12
import { CompleteRegistrationPage } from "@/pages/Onboarding/CompleteRegistration/page";
import { SelectProfilePage } from "@/pages/Onboarding/UserRegistration/Profile/page";
import { SelectPricePage } from "@/pages/Onboarding/UserRegistration/Price/page";
import { SelectLocationPage } from "@/pages/Onboarding/UserRegistration/Location/page";
import { SelectConceptPage } from "@/pages/Onboarding/UserRegistration/Concept/page";
import { SelectFeaturePage } from "@/pages/Onboarding/UserRegistration/Feature/page";

Choose a reason for hiding this comment

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

각 페이지를 lazy import해도 좋을 거 같네요

https://reactrouter.com/en/main/route/lazy


interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
isChecked: boolean;
className?: string;

Choose a reason for hiding this comment

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

className은 확장하신 타입에 포함되어 있지 않을까요?

Comment on lines 27 to 34
/**
* 사용 예시
* <CategoryTag categoryType="dance">무용</CategoryTag>
* <CategoryTag categoryType="classical">클래식</CategoryTag>
* <CategoryTag categoryType="ongoing">공연 중</CategoryTag>
* <CategoryTag categoryType="upcoming">공연 예정</CategoryTag>
*
*/

Choose a reason for hiding this comment

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

해당 주석은 tsdoc으로 제공하면 좋을 거 같아요

https://tsdoc.org/

import { CategoryTagProps } from "@/types";

export const CategoryTag = ({ categoryType, children }: CategoryTagProps) => {
const TagStyle = () => {

Choose a reason for hiding this comment

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

파스칼 케이스의 변수명을 사용하신 이유가 궁금해요

Comment on lines 25 to 51
export const Genre = ({ genreType, className, size = 48 }: GenreProps) => {
const genreLogo = () => {
switch (genreType) {
case "Majestic":
return <Grand width={size} height={size} viewBox="0 0 48 48" />;
case "Delicate":
return <Grand width={size} height={size} viewBox="0 0 48 48" />;
case "Classical":
return <Classical width={size} height={size} viewBox="0 0 48 48" />;
case "Modern":
return <Classical width={size} height={size} viewBox="0 0 48 48" />;
case "Lyrical":
return <Lyrical width={size} height={size} viewBox="0 0 48 48" />;
case "Dynamic":
return <Lyrical width={size} height={size} viewBox="0 0 48 48" />;
case "Romantic":
return <Romantic width={size} height={size} viewBox="0 0 48 48" />;
case "Tragic":
return <Grand width={size} height={size} viewBox="0 0 48 48" />;
case "Familiar":
return <Grand width={size} height={size} viewBox="0 0 48 48" />;
case "Fresh":
return <Fresh width={size} height={size} viewBox="0 0 48 48" />;
default:
return null; // 또는 기본 아이콘을 반환할 수 있습니다
}
};

Choose a reason for hiding this comment

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

제가 서비스의 기획을 알지 못해 부적절한 리뷰가 될 수 있을 거 같은데요

해당 장르 컴포넌트를 사용하는 곳에서 모든 아이콘을 로드할 필요가 있을까요?

현재의 상태에서는 사용하지 않는 아이콘 파일도 로드해 번들링 사이즈가 커질 거 같아요

Comment on lines +4 to +12
export default function ScrollTop() {
const { pathname } = useLocation();

useEffect(() => {
window.scrollTo(0, 0);
}, [pathname]);

return null;
}

Choose a reason for hiding this comment

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

로직을 담당하는 컴포넌트를 사용하신 이유가 궁금해요

훅으로 사용할 수 있지 않을까요?

dvp-tae and others added 29 commits November 14, 2024 17:22
…lishing

Feat/#47 clacoticket detail publishing
dvp-tae and others added 30 commits November 30, 2024 01:11
fix: 에러 핸들링 수정:
hotfix: 로티 이미지 수정
hotfix: 그라디언트 추가
hotfix: 그라디언트 위치 수정
feat: 티켓북 초기 페이지 수정
feat: 프로필 이미지 api 연동 수정
fix: 리프레쉬 토큰 api 연동 삭제
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants