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

feat: quiz (오답 터뜨리기) #284

Merged
merged 8 commits into from
Nov 29, 2024
Merged

feat: quiz (오답 터뜨리기) #284

merged 8 commits into from
Nov 29, 2024

Conversation

rabyeoljji
Copy link
Contributor

@rabyeoljji rabyeoljji commented Nov 29, 2024

개요

ui와 interaction 먼저 구현했습니다
api 연동은 문서 생성 => 퀴즈 시작쪽 api 연동 먼저 진행한 후에 진행할 예정입니다

default.mp4

세부 내용

관련 링크

@rabyeoljji rabyeoljji self-assigned this Nov 29, 2024
@rabyeoljji rabyeoljji requested a review from jw-r November 29, 2024 07:06
Copy link
Member

@jw-r jw-r 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 29 to 38
setQuizResults((prev) => {
const newResults = [...prev]
newResults[currentIndex] = {
id,
answer: isRight,
choseAnswer,
elapsedTime: 1, // 임시
}
return newResults
})
Copy link
Member

Choose a reason for hiding this comment

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

이 로직은 상위 컴포넌트에서 작성되어 내려오는 것이 좋을 수 있습니다
onAnswer자체를 prop으로 받는 것도 방법이겠네요

이유는 리액트의 상태 스냅샷 때문인데, setQuizResults를 업데이트 시켜도 다음 렌더링 때 quizzes에 상태에 반영되기 떄문입니닷
특정 함수에서 최신화된 상태 값에 접근하지 못할 가능성이 있어서요!

Comment on lines 47 to 48
// TODO:
// 현재까지 퀴즈 결과 서버에 전송
Copy link
Member

Choose a reason for hiding this comment

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

위와 같은 이유로 상위(api request를 보내는 컴포넌트)에서 작성되면 좋을 수 있습니다

/>

{leftQuizCount >= 2 && (
<motion.div className="center" initial={{ x: '120px', y: '50%' }}>
Copy link
Member

Choose a reason for hiding this comment

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

아래와 동일한 로직인데, motion.div의 initial로 위치를 조정해준게 매우 참신하네요😲
너무 창의적입니다👍👍

<div className="center !translate-x-[200px] !translate-y-1/2">

Copy link
Contributor Author

Choose a reason for hiding this comment

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

사실 className으로 하려다가 x,y값은 framer motion으로 통일시켜버렸습니다...

@rabyeoljji rabyeoljji merged commit 878f34f into develop Nov 29, 2024
5 checks passed
rabyeoljji added a commit to rabyeoljji/pick-toss-next that referenced this pull request Nov 29, 2024
* fix: quiz

- 변경된 사항들 반영해 코드 수정

* feat: 오답 터뜨리기 ui / interaction 구현

- api 연동은 아직 구현 안되어있습니다

* feat: 다음 작업 주석처리

* feat: 오답 터뜨리기 접근 시 로딩 추가

* fix: css 수정

* fix: 애니메이션 수정

* refactor: 코드리뷰 반영 + bombPositions 컨벤션 통일
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.

2 participants