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, refactor] mock 서버와 통신 관련 구체화 #91

Merged
merged 3 commits into from
Aug 12, 2024

Conversation

darkdulgi
Copy link
Collaborator

#️⃣ 연관 이슈

ex) #이슈번호

이번 PR에서 작업한 내용을 요약해주세요.

  • 이벤트 ID와 이벤트 시작 날짜를 상수로 정의했습니다.
  • 인터랙션 페이지에서 mock 서버를 약간 작성했습니다.
  • 서버 통신에 대비해 맞게 구현했습니다.

서버에서 해당 날짜의 사용자 응모 여부와, 시간을 받아온 후 이벤트 날짜와 비교하는 것은 현재 시간과 이벤트 날짜를 비교하는 것으로 합쳤습니다. 왜냐하면 현재 시간이 이벤트 전이라면 모달 자체를 열지 못하고, 로그인 상태일때 해당 날짜가 이벤트 날짜와 같다면 자동으로 추첨 이벤트 참가 전송이 되기에 사용자 응모 여부와 이벤트 날짜 동일 여부는 동치이기 때문입니다.

@darkdulgi darkdulgi added feat 기능 구현 refactor 코드 리팩토링 labels Aug 12, 2024
@darkdulgi darkdulgi self-assigned this Aug 12, 2024
Comment on lines +22 to +34
useEffect(() => {
fetchServer(`/api/v1/draw/${EVENT_DRAW_ID}`)
.then((res) => {
console.log(res);
/*
* 사용자가 참여한 이벤트 날짜 문자열이 들어간 가변적 길이의 리스트를 서버로부터 받아올 예정. 그런데 그 문자열의 형식을 아직 모른다..
*/
setJoinedList([0, 1, 1, 0, -1]);
})
.catch((e) => {
console.log(e);
});
}, []);
Copy link
Collaborator

Choose a reason for hiding this comment

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

웬만해서는 useQuery와 Suspense를 사용해서 초기 데이터 페칭을 하시기 바랍니다.

Comment on lines +46 to +49
if (getEventDateState(currentServerTime, eventDate) === "active") {
setIsJoined(true);
}
}, [currentServerTime, eventDate]);
Copy link
Collaborator

Choose a reason for hiding this comment

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

현재 서버시간이 이벤트의 시점과 일치한다면 (이벤트가 진행중이라면) isjoined를 true로 바꾸는데, 그게 또 로그인해서 추첨이벤트에 참여를 성공해도 true가 되네요?

isjoined라는 상태가 알 수 없는 것 같습니다. 자세히 설명해 주시겠어요?

Comment on lines +46 to +49
if (getEventDateState(currentServerTime, eventDate) === "active") {
setIsJoined(true);
}
}, [currentServerTime, eventDate]);
Copy link
Collaborator

Choose a reason for hiding this comment

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

추가로 웬만해선 비동기이거나 불가피한 경우가 아니고서야 useEffect로 state를 갱신하는 건 자제하는 게 좋습니다.
파생된 상태는 그냥 바로 렌더링할 때마다 계산하면 됩니다.

@lybell-art lybell-art merged commit 086ee37 into dev Aug 12, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feat 기능 구현 refactor 코드 리팩토링
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[feat] 메인-인터랙션 모달 [feat] 메인-인터랙션 페이지
2 participants