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

[GGFE-229] 상점 모달 로딩 처리 #982

Merged
merged 16 commits into from
Sep 6, 2023
Merged

Conversation

hyobb109
Copy link
Member

@hyobb109 hyobb109 commented Sep 5, 2023

📌 개요

  • 상점 모달 로딩 처리

💻 작업사항

  • 상점 구매, 선물 & 보관함 뽑기 모달
    • 모달 버튼 컴포넌트에서 isLoading이 true일 경우 로딩 버튼 컴포넌트를 띄웁니다
    • 다른 모달에서도 로딩 상태 추가해서 사용하면 좋을 것 같습니다!
  • 코인 내역 모달
    • 코인내역 불러올 때 로딩 애니메이션 추가했습니다
    • api 에러 시 모달 닫기 추가했습니다
    • 코인 변화량이 0일 때는 내역에 보이지 않도록 수정했습니다

✅ 변경로직

@hyobb109 hyobb109 self-assigned this Sep 5, 2023
Copy link
Contributor

@PHJoon PHJoon left a comment

Choose a reason for hiding this comment

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

코인 내역이랑 버튼 클릭 시 로딩 표시 잘 뜹니다! 한 번 눌렀을 때 다시 못 누르는 것도 잘 작동하네요! 관리자에서도 스타일만 바꿔서 적용하겠습니다! 고생하셨습니다!! 👍

Comment on lines 19 to 28
const onPurchase = async () => {
setIsLoading(true);
try {
await instance.post(`/pingpong/items/purchases/${itemId}`, null);
alert(`구매 성공!`);
} catch (error) {
setError('HB03');
}
setIsLoading(false);
resetModal();
Copy link
Contributor

Choose a reason for hiding this comment

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

setIsLoading(false)는 없어도 될거 같아요! 요청이 빠르게 완료되고 나면 로딩 버튼 애니메이션이랑 아닐 때 버튼 배경이랑 겹치는 것 같아요

}: {
setRecipient: Dispatch<SetStateAction<string>>;
setGiftReqData: Dispatch<SetStateAction<GiftRequest>>;
}) {
const {
Copy link
Contributor

Choose a reason for hiding this comment

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

선물하기에서 검색하고 엔터치면 그 사람의 프로필로 이동하네요 😭 useSearchBar에서 가져온 것 handlekeydown에 router.push가 있어서 그런것 같아요.

Copy link
Member

@yoouyeon yoouyeon left a comment

Choose a reason for hiding this comment

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

로딩 버튼 만든거 너무 좋네요 👍👍
코인 내역에 로딩 효과 잘 뜨는건 확인했는데, 구매/선물일때는 itemId가 바뀌는 바람에 모두 구매 실패가 떠서 성공 시에는 확인을 못해봤네요 🥲
이부분은 main에 올라와있는 실제 api 연결된 내용이 적용되면 다시 확인해볼게요!
수고하셨습니다~!! 😆

Comment on lines +3 to +13
export default function LoadingButton() {
return (
<div className={styles.loadingButton}>
<div className={styles.loading}>
<span className={styles.span1}>o</span>
<span className={styles.span2}>o</span>
<span className={styles.span3}>o</span>
</div>
</div>
);
}
Copy link
Member

Choose a reason for hiding this comment

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

이 컴포넌트 이름은 버튼인데 사실은 버튼이 아니라 (?) 나중에 보면 헷갈릴수도 있을 것 같아요 🥲
LoadingEffect같이 애니메이션이나 효과를 보여주는 컴포넌트 이름으로 바꾸면 좋을 것 같아요!

Copy link
Member Author

Choose a reason for hiding this comment

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

사실 버튼은 아니지만 버튼 모양처럼 생기긴해서 버튼이라고 지었습니다! ㅎㅎ 로딩애니메이션은 따로 컴포넌트로 분리하진 않아서 이것도 시간 되면 분리하면 좋을 것 같긴 하네요!

Comment on lines 31 to 37
const res = await instance.post(
`/pingpong/items/gift/${itemId}`,
giftReqData
);
if (res.status === 201) {
alert(`${giftReqData.ownerId}님께 선물이 전달되었습니다.`);
}
Copy link
Member

Choose a reason for hiding this comment

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

여기 res.status가 201인 경우에는 처리가 되어서 alert가 뜰 것 같은데, 200같은 다른 성공 응답이 혹시라도 온다면 이 부분에 대해서는 처리가 안되어 있어서 바로 모달이 꺼질 것 같아요...!
특별히 res.status 201에 대한 처리가 필요한 게 아니라면 그냥 catch 블록으로 넘어가지 않았을 경우에는 성공이라고 판단하고 alert를 띄우는 것도 괜찮지 않을까 싶습니다 ^_ㅜ

Suggested change
const res = await instance.post(
`/pingpong/items/gift/${itemId}`,
giftReqData
);
if (res.status === 201) {
alert(`${giftReqData.ownerId}님께 선물이 전달되었습니다.`);
}
const res = await instance.post(
`/pingpong/items/gift/${itemId}`,
giftReqData
);
alert(`${giftReqData.ownerId}님께 선물이 전달되었습니다.`);

Copy link
Member Author

Choose a reason for hiding this comment

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

그렇게 하는게 좋을 것 같네요! 수정하겠습니다👍

@hyobb109 hyobb109 merged commit 7b1824a into main Sep 6, 2023
1 check passed
@hyobb109 hyobb109 deleted the GGFE-229-Store-Loading branch September 6, 2023 05:53
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.

3 participants