diff --git a/src/components/AssignmentLabel/AssignmentLabel.tsx b/src/components/AssignmentLabel/AssignmentLabel.tsx index 07178e3..68ac49e 100644 --- a/src/components/AssignmentLabel/AssignmentLabel.tsx +++ b/src/components/AssignmentLabel/AssignmentLabel.tsx @@ -37,7 +37,7 @@ export function AssignmentLabel({ assignmentCode }: AssignmentLabelProps) { case 'staff-delegate': return {name}; case 'staff-stagelead': - return {name}; + return {name}; default: return {name}; } diff --git a/src/components/CutoffTimeLimitPanel/CutoffTimeLimitPanel.tsx b/src/components/CutoffTimeLimitPanel/CutoffTimeLimitPanel.tsx index 13fc778..9834a11 100644 --- a/src/components/CutoffTimeLimitPanel/CutoffTimeLimitPanel.tsx +++ b/src/components/CutoffTimeLimitPanel/CutoffTimeLimitPanel.tsx @@ -42,34 +42,49 @@ export function CutoffTimeLimitPanel({ )} - {timeLimit && timeLimit?.cumulativeRoundIds.length > 0 && ( -
- }} - /> - {': '} - - {timeLimit.cumulativeRoundIds - .filter((activityCode) => activityCode !== round.id) - .map((activityCode, i, arry) => { - const { eventId, roundNumber } = parseActivityCode(activityCode); - return ( - - - {t('common.activityCodeToName.round', { roundNumber })} - {i < arry.length - 1 ? ', ' : ''} - - - ); - })} + {timeLimit && + timeLimit?.cumulativeRoundIds.length > 0 && + timeLimit.cumulativeRoundIds.filter((activityCode) => activityCode !== round.id) + .length === 0 && ( + + }} + /> -
- )} + )} + + {timeLimit && + timeLimit?.cumulativeRoundIds.length > 0 && + timeLimit.cumulativeRoundIds.filter((activityCode) => activityCode !== round.id) + .length > 0 && ( +
+ + }} + /> + {timeLimit.cumulativeRoundIds + .filter((activityCode) => activityCode !== round.id) + .map((activityCode, i, arry) => { + const { eventId, roundNumber } = parseActivityCode(activityCode); + return ( + + + {t('common.activityCodeToName.round', { roundNumber })} + {i < arry.length - 1 ? ', ' : ''} + + + ); + })} + +
+ )} {round.advancementCondition && (
diff --git a/src/i18n/en/translation.yaml b/src/i18n/en/translation.yaml index 1b9806f..280ab3a 100644 --- a/src/i18n/en/translation.yaml +++ b/src/i18n/en/translation.yaml @@ -28,7 +28,8 @@ common: 'other-mbld': 'MBLD Submission' timeLimit: 'Time Limit' cutoff: 'Cutoff' - cumulativeTimelimit: Time Limit {{time}} with rounds + cumulativeTimelimit: 'Time Limit: {{time}} Cumulative' + cumulativeTimelimitWithrounds: 'Time Limit: {{time}} Total with: ' advancement: ranking: 'Top {{level}} to next round' percent: 'Top {{level}}% to next round' diff --git a/src/i18n/ko/translation.yaml b/src/i18n/ko/translation.yaml index cc21632..fae1af7 100644 --- a/src/i18n/ko/translation.yaml +++ b/src/i18n/ko/translation.yaml @@ -24,8 +24,11 @@ common: 444bf: 4x4x4 블라인드 555bf: 5x5x5 블라인드 333mbf: 3x3x3 멀티 블라인드 + other-mbld: 멀티 블라인드 큐브 제출 timeLimit: 기록 제한 cutoff: 컷오프 + cumulativeTimelimit: '기록 제한: 누적 {{time}}' + cumulativeTimelimitWithrounds: '기록 제한: 총 {{time}}, 대상 라운드: ' advancement: ranking: 상위 {{level}}명이 다음 라운드로 진출 percent: 상위 {{level}}%가 다음 라운드로 진출 @@ -101,10 +104,10 @@ common: noun_other: 사전 준비/행사 정리 verb: 사전 준비 중/행사 정리 중 staff-core: - noun: 핵심 스태프 - noun_other: 핵심 스태프 - verb: 핵심 스태프 - lastFetched: '최근 가져오기: {{date}}' + noun: 코어 스태프 + noun_other: 코어 스태프 + verb: 코어 스태프 + lastFetched: '최근 업데이트: {{date}}' competitionSelect: placeholder: 대회 검색 noOptions: 검색된 대회 없음 @@ -136,6 +139,7 @@ home: yourCompetitions: 귀하의 대회 competition: competitors: + viewMyAssignments: 나의 배정 보기 viewCompetitionInformation: 대회 정보 보기 searchCompetitors: 선수 검색 groups: @@ -156,11 +160,11 @@ competition: title: 순위 name: 성명 personalSchedule: - registeredEvents: 신청한 종목 + registeredEvents: 신청된 종목 viewPersonalRecords: 개인 기록 보기 viewResults: 결과 보기 noAssignments: - line1: 업무 없음 + line1: 배정 없음 line2: 나중에 다시 확인해 주세요! activity: 활동 time: 시간 @@ -168,8 +172,9 @@ competition: group: 그룹 stage: $t(common.stage) station: 스테이션 + submitMultiCubes: MBLD 제출 personalRecords: - viewSchedule: 개인 배정 업무 보기 + viewSchedule: 개인 배정 보기 type: 유형 best: 최고 기록 scramblers: @@ -179,7 +184,7 @@ competition: event: 종목 scramblers: 스크램블러 streamSchedule: - title: 스트리밍 스케쥴 + title: 스트리밍 일정 subtitle: 생중계 time: 시간 event: $t(common.wca.event) diff --git a/src/lib/results.ts b/src/lib/results.ts index 34d29ad..27c00be 100644 --- a/src/lib/results.ts +++ b/src/lib/results.ts @@ -29,15 +29,17 @@ export const renderCutoff = (cutoff: Cutoff) => { return '-'; } - return `${formatCentiseconds(cutoff.attemptResult).replace(/\.00+$/, '')}`; + return `${formatCentiseconds(cutoff.attemptResult)}`; }; export const renderCentiseconds = (centiseconds: number) => { - if (centiseconds >= 60000) { + if (centiseconds >= 360000) { const hours = Math.floor(centiseconds / 360000); - const centi = formatCentiseconds(centiseconds - hours * 360000).replace(/\.00+$/, ''); - return hours ? `${hours}:${centi}` : centi; + const minutes = Math.floor((centiseconds % 360000) / 6000); + const seconds = Math.floor((centiseconds % 6000) / 100); + const centis = centiseconds % 100; + return `${hours}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}.${centis.toString().padStart(2, '0')}`; } - return formatCentiseconds(centiseconds).replace(/\.00+$/, ''); + return formatCentiseconds(centiseconds); };