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

[이종욱] Sprint12 #736

Conversation

Bersk3r
Copy link
Collaborator

@Bersk3r Bersk3r commented Jul 19, 2024

요구사항

기본

  • React를 활용하여 구현해주세요
  • api 요청에 TanStack React Query를 활용해 주세요.
  • ‘상품 등록하기’ 버튼을 누르면 “/additem” 로 이동합니다.
  • 상품 상세 페이지 주소는 “/items/{productId}” 입니다.
  • 각 상품 클릭 시 상품 상세 페이지로 이동합니다.
  • 내가 등록한 상품일 경우 상품 수정, 삭제가 가능합니다.
  • 문의하기 input창에 값을 입력 후 ‘등록’ 버튼을 누르면 댓글이 등록됩니다.
  • 내가 등록한 댓글은 수정, 삭제가 가능합니다.
  • 이미지를 제외하고 input 에 모든 값을 입력하면 ‘등록' 버튼이 활성화 됩니다.
  • 활성화된 ‘등록' 버튼을 누르면 상품 등록이 완료됩니다.
  • 등록이 완료되면 해당 상품 상세 페이지로 이동합니다.

주요 변경사항

  • 기존 items 페이지 추가
  • React Query로 API 요청 (구현 부분에 한하여)

스크린샷

image

멘토에게

  • 구현한 부분에 대해 검토 부탁드립니다.
  • 셀프 코드 리뷰를 통해 질문 이어가겠습니다.

기존 Next.js 프로젝트 내  제품 페이지가 존재하지 않아, 기존 페이지를 맞게 컨버팅한 후 React Query 내용 추가
@Bersk3r Bersk3r requested a review from jyh0521 July 19, 2024 14:18
@Bersk3r Bersk3r self-assigned this Jul 19, 2024
@Bersk3r Bersk3r added 매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다. 미완성🫠 죄송합니다.. labels Jul 19, 2024
@Bersk3r Bersk3r changed the title [이종욱] Sprint 12 [이종욱] Sprint12 Jul 19, 2024
Copy link
Collaborator

@jyh0521 jyh0521 left a comment

Choose a reason for hiding this comment

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

과제하느라 고생하셨습니다 👍

page = 1,
pageSize = 3,
orderBy = "recent",
keyword,
Copy link
Collaborator

Choose a reason for hiding this comment

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

keyword 타입이 널러블이여서 undefined가 들어올 수도 있을 것 같은데, keyword 타입을 명시해주시거나 빈문자열로 초기화해주시는 것도 좋을 것 같습니다.

Copy link
Collaborator

Choose a reason for hiding this comment

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

저는 개인적으로 class 내부에 미디어쿼리를 넣는 방법을 선호합니다. 이렇게 하면 유지보수하는 시점에 수정해야하는 클래스 하나를 찾고 내부의 반응형 css를 수정해줄 수 있기 때문입니다!

@@ -0,0 +1,139 @@
import { useEffect, useState } from "react";
import { sortItemsByOrder } from "../../lib/sort";
Copy link
Collaborator

Choose a reason for hiding this comment

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

alias path 도입해보시는것도 추천드려요!

import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";

function AllItems() {
const [order, setOrder] = useState<ProductSortOption>("recent");
Copy link
Collaborator

Choose a reason for hiding this comment

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

recent 같은 값은 상수로 활용해보시는 것을 추천드립니다.

isPending,
isError,
} = useQuery({
queryKey: ["allitems"],
Copy link
Collaborator

Choose a reason for hiding this comment

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

queryKey에 상태값도 포함해주셔야 다른 상태를 불러올때 캐싱된 값을 불러오지 않고 새롭게 요청을 보낼 수 있습니다.

}

function BestProducts({ items, counts }: { items: Product[]; counts: number }) {
console.log(items);
Copy link
Collaborator

Choose a reason for hiding this comment

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

console.log 지워주시면 좋을 것 같습니다.

@jyh0521 jyh0521 merged commit 6df57fc into codeit-bootcamp-frontend:Next.js-이종욱 Jul 22, 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