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

[이석찬] Sprint6 #237

Conversation

SeokChan-Lee
Copy link
Collaborator

@SeokChan-Lee SeokChan-Lee commented Dec 1, 2024

요구사항

체크리스트 [기본]

상품 등록

  • 상품 등록 페이지 주소는 “/additem” 입니다.
  • 페이지 주소가 “/additem” 일때 상단네비게이션바의 '중고마켓' 버튼의 색상은 “3692FF”입니다.
  • 상품 이미지는 최대 한개 업로드가 가능합니다.
  • 각 input의 placeholder 값을 정확히 입력해주세요.
  • 이미지를 제외하고 input 에 모든 값을 입력하면 ‘등록' 버튼이 활성화 됩니다.

심화

  • 이미지 안의 X 버튼을 누르면 이미지가 삭제됩니다.
  • 추가된 태그 안의 X 버튼을 누르면 해당 태그는 삭제됩니다.

주요 변경사항

  • 스프린트 미션 6 진행
  • 컴포넌트, 컴포넌트별 css, 페이지 정리 작업.

스크린샷

image image image

멘토에게

@SeokChan-Lee
Copy link
Collaborator Author

package-lock.json
package.json
public/index.html
src/index.js

위 파일들의 충돌이 자꾸 발생한다고 깃에서 경고 문구가 뜨는데 로컬파일에서는 따로 충돌이 보이지 않아 어떻게 해결해야될지 모르겠습니다 ㅠ

@SeokChan-Lee SeokChan-Lee requested a review from devToram December 1, 2024 12:56
@SeokChan-Lee SeokChan-Lee added the 매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다. label Dec 1, 2024
@SeokChan-Lee SeokChan-Lee self-assigned this Dec 1, 2024
Copy link
Collaborator

@devToram devToram left a comment

Choose a reason for hiding this comment

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

package-lock.json
package.json
public/index.html
src/index.js

위 파일들의 충돌이 자꾸 발생한다고 깃에서 경고 문구가 뜨는데 로컬파일에서는 따로 충돌이 보이지 않아 어떻게 해결해야될지 모르겠습니다 ㅠ

해당 부분 고민해보시다가 다음 멘토링까지 안되시면 질문주시면 실시간으로 같이 해결해봐요!

const [input, setInput] = useState("");

const onPressEnter = (event) => {
if (event.nativeEvent.isComposing) return;
Copy link
Collaborator

Choose a reason for hiding this comment

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

👍


function ItemCard({ item, imgSizeClass }) {
const imageUrl =
item.images && item.images.length > 0 ? item.images[0] : defaultImage;
Copy link
Collaborator

Choose a reason for hiding this comment

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

요런 문법도 써보면 재밌어요!

Suggested change
item.images && item.images.length > 0 ? item.images[0] : defaultImage;
item?.images?.[0] ?? defaultImage;

Comment on lines +9 to +17
const sortedItems = [...items].sort((a, b) => {
if (sortType === "newest") {
return new Date(b.createdAt) - new Date(a.createdAt);
}
if (sortType === "favorite") {
return b.favoriteCount - a.favoriteCount;
}
return 0;
});
Copy link
Collaborator

Choose a reason for hiding this comment

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

spread 연산자의 세심함...👍 early return 도 좋습니다!

function AddItem() {
const [name, setName] = useState("");
const [description, setDescription] = useState("");
const [price, setPrice] = useState("");
Copy link
Collaborator

Choose a reason for hiding this comment

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

price 가 string 타입이네요..!

Comment on lines +13 to +20
try {
const data = await getItems();
setItems(data);
setLoading(false);
} catch (err) {
setError(err.message);
setLoading(false);
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

setLoading 은 api 의 에러 여부와 관계없이 처리되는 값이라서 finally 로 받아주는 게 자연스러울 거 같아요!

Suggested change
try {
const data = await getItems();
setItems(data);
setLoading(false);
} catch (err) {
setError(err.message);
setLoading(false);
}
try {
const data = await getItems();
setItems(data);
} catch (err) {
setError(err.message);
} finally {
setLoading(false);
}

@devToram devToram merged commit 6d69929 into codeit-bootcamp-frontend:React-이석찬 Dec 3, 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.

4 participants