-
Notifications
You must be signed in to change notification settings - Fork 2
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
feat: quiz (오답 터뜨리기) #284
Conversation
- api 연동은 아직 구현 안되어있습니다
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
구현 완성도 무엇...
너무 멋진걸요?
코드 가독성도 놀라울정도로 뛰어났던 것 같아요😲
현재 적용할 필요는 없지만, 폭탄 이미지의 사이즈와 폭탄들의 위치를 수식화해서 나타낼 수 있으면 좋겠다는 생각이 들었습니다!
setQuizResults((prev) => { | ||
const newResults = [...prev] | ||
newResults[currentIndex] = { | ||
id, | ||
answer: isRight, | ||
choseAnswer, | ||
elapsedTime: 1, // 임시 | ||
} | ||
return newResults | ||
}) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이 로직은 상위 컴포넌트에서 작성되어 내려오는 것이 좋을 수 있습니다
onAnswer자체를 prop으로 받는 것도 방법이겠네요
이유는 리액트의 상태 스냅샷 때문인데, setQuizResults를 업데이트 시켜도 다음 렌더링 때 quizzes에 상태에 반영되기 떄문입니닷
특정 함수에서 최신화된 상태 값에 접근하지 못할 가능성이 있어서요!
// TODO: | ||
// 현재까지 퀴즈 결과 서버에 전송 |
There was a problem hiding this comment.
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%' }}> |
There was a problem hiding this comment.
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">
There was a problem hiding this comment.
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으로 통일시켜버렸습니다...
* fix: quiz - 변경된 사항들 반영해 코드 수정 * feat: 오답 터뜨리기 ui / interaction 구현 - api 연동은 아직 구현 안되어있습니다 * feat: 다음 작업 주석처리 * feat: 오답 터뜨리기 접근 시 로딩 추가 * fix: css 수정 * fix: 애니메이션 수정 * refactor: 코드리뷰 반영 + bombPositions 컨벤션 통일
개요
ui와 interaction 먼저 구현했습니다
api 연동은 문서 생성 => 퀴즈 시작쪽 api 연동 먼저 진행한 후에 진행할 예정입니다
default.mp4
세부 내용
관련 링크