-
Notifications
You must be signed in to change notification settings - Fork 0
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
[#138] 대회 세부정보 페이지 생성 #149
The head ref may contain hidden characters: "138-\uB300\uD68C-\uC138\uBD80\uC815\uBCF4-\uD398\uC774\uC9C0-\uC0DD\uC131"
Conversation
- 대회 세부정보 페이지 컴포넌트인 CompetitionDetailPage컴포넌트 작성 - 이에 대한 라우팅 router.tsx에 작성 - 대회 종료 후 페이지 작성중(문제 이름을 클릭하면 문제 세부 정보 페이지로 이동)
- 대회 세부정보 페이지 컴포넌트인 CompetitionDetailPage컴포넌트 작성 - 이에 대한 라우팅 router.tsx에 작성 - 대회 종료 후 페이지 작성중(문제 이름을 클릭하면 문제 세부 정보 페이지로 이동)
- 대회 종료 전 하나의 컴포넌트로 구현했던 것을 대회 시작 전후로 나누었습니다. - 대회 시작 전에 페이지에 접속해 대회 시작 시간이 지난 경우, 대회 입장 버튼을 누르면 페이지 리렌더링이 되게 코드 수정
…o-with-me into 138-대회-세부정보-페이지-생성
✅ Deploy Preview for algo-with-me ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
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.
AfterCompetitionEnd
BeforeCompetitionStart
AfterCompetition
BeforeCompetition
이렇게가 네이밍 짝이 맞는 것 같아요 저는 후자가 좋은 것 같습니다.
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.
앗, 신경쓰지 못했네요 감사합니다!
if (!isLoggedin) { | ||
alert('로그인이 필요합니다.'); | ||
navigate('/login'); | ||
} else if (currentTime < startsAt) { | ||
alert('아직 대회가 시작되지 않았습니다. 다시 시도해주세요'); | ||
window.location.reload(); | ||
} else { | ||
navigate(competitionLink); | ||
} |
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.
�끝난 대회는 입장 못 한다는 로직이 빠져있네요 !
대회가 시작하기 전에 들어와서 입장 버튼이 생긴 유저가 한참 뒤에 와서 누르면 입장될 것 같습니다.
물론 대회 페이지에서 Timer로 남은 시간이 0 이거나 음수면 해당 대회 대시 보드로 이동하는 로직이 있어 바로 대시보드로 갈 것 같긴 합니다.
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.
아아 그렇네요, 감사합니다!
대회 페이지에서 대시 보드로 이동하는 로직이 있어도, 말씀하신 끝난 대회는 입장 못하는 로직이 없으면 대회 화면으로 갔다가 대시 보드로 가게 되어서 추가하겠습니다!
const competitionSchedule = `시작: ${formattedStartsAt} 종료: ${formattedEndsAt}`; | ||
|
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.
취향이긴 한데,
이렇게 구현하면
오전 - 오후나
오후 - 오전이 나올 수 있을텐데,
2023.11.29 오후 11.30 ~ 2023.11.30 오전 3시.30분 보다
2023.11.29 23:30:00 ~ 2023.11.30 03:30:00 이게 알아보기 좋지 않을까요?
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.
확실히 그렇네요, 감사합니다!
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.
우찬님 변경하시고 어떻게 나오는지 스샷 하나만 첨부해주세요!
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.
if (currentDate < startsAt) { | ||
return ( | ||
<BeforeCompetition | ||
{...{ competitionId, competition, startsAt, endsAt, competitionSchedule }} |
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.
생각 못해본 방법인데 좋네요
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.
저도 이번에 하다가 써봤는데 되더라고요:D
frontend/src/utils/date/index.ts
Outdated
export const formatKoreanDateTime = (date: Date) => { | ||
return date.toLocaleString('ko-KR', { | ||
year: 'numeric', | ||
month: 'numeric', | ||
day: 'numeric', | ||
hour: 'numeric', | ||
minute: 'numeric', | ||
hour12: false, | ||
}); | ||
}; |
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.
약간은 개인적인 욕심인데, formatDate를 확장해서 'yyyy. mm. dd. hh:mm' 를 받으면 이 형식으로 반환하도록 할 수 있을까요?
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.
넵, 알겠습니다!:D
frontend/src/utils/date/index.ts
Outdated
export const formatKoreanDateTime = (dateString: string | number | Date) => { | ||
const date = new Date(dateString); | ||
if (isNaN(date.getTime())) { | ||
// Invalid date, handle error or return default value | ||
return 'Invalid Date'; | ||
} | ||
|
||
const year = date.getFullYear(); | ||
const month = String(date.getMonth() + 1).padStart(2, '0'); | ||
const day = String(date.getDate()).padStart(2, '0'); | ||
const hours = String(date.getHours()).padStart(2, '0'); | ||
const minutes = String(date.getMinutes()).padStart(2, '0'); | ||
|
||
return `${year}. ${month}. ${day}. ${hours}:${minutes}`; | ||
}; |
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.
아 formatDate 함수를 확장해달라는 얘기였어요.
export const formatDate = (date: Date, form: string) => {
if (form === 'YYYY-MM-DDThh:mm') {
return date.toISOString().slice(0, 'YYYY-MM-DDThh:mm'.length);
}
if(form === 'YYYY. MM. DD. hh:mm') { ... } // 여기
return '';
};
이런식으로요
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.
아, 제가 착각했네요:ㅇ
formatDate 함수는 유석님이 작성하신 함수긴 한데, 말씀하신 대로 확장해볼게요!
…o-with-me into 138-대회-세부정보-페이지-생성
formatKoreaTime이 아니라 formatDate를 확장하고 formatDate를 써달라는 요청이어서 이를 반영하는 commit이 [refactor: formatDate함수 확장] 입니다! |
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.
LGTM
한 일
스크린샷
-대회 진행 중 페이지