66 lines
1.5 KiB
TypeScript
66 lines
1.5 KiB
TypeScript
function normalizeReason(reason?: string | null): string {
|
||
if (!reason) {
|
||
return ''
|
||
}
|
||
|
||
if (reason === 'user has an ongoing session for this event') {
|
||
return '当前活动存在未结束对局'
|
||
}
|
||
if (reason === 'no ongoing session for this event') {
|
||
return '当前活动没有进行中的对局'
|
||
}
|
||
if (reason === 'ready to launch') {
|
||
return '当前可直接开始'
|
||
}
|
||
if (reason === 'launch blocked') {
|
||
return '当前启动受限'
|
||
}
|
||
|
||
return reason
|
||
}
|
||
|
||
function normalizeAction(action?: string | null): string {
|
||
if (!action) {
|
||
return '--'
|
||
}
|
||
|
||
if (action === 'continue') {
|
||
return '继续上一局'
|
||
}
|
||
if (action === 'launch' || action === 'start') {
|
||
return '开始比赛'
|
||
}
|
||
if (action === 'preview') {
|
||
return '查看活动'
|
||
}
|
||
|
||
return action
|
||
}
|
||
|
||
export function formatBackendPlayActionText(action?: string | null, reason?: string | null): string {
|
||
const actionText = normalizeAction(action)
|
||
const reasonText = normalizeReason(reason)
|
||
if (!reasonText) {
|
||
return actionText
|
||
}
|
||
|
||
return `${actionText}(${reasonText})`
|
||
}
|
||
|
||
export function formatBackendPlayStatusText(canLaunch: boolean, action?: string | null, reason?: string | null): string {
|
||
if (!canLaunch) {
|
||
return '当前不可启动'
|
||
}
|
||
|
||
if (action === 'continue') {
|
||
return '检测到未结束对局,可继续进入地图'
|
||
}
|
||
|
||
const reasonText = normalizeReason(reason)
|
||
if (reasonText) {
|
||
return `${reasonText},可进入地图`
|
||
}
|
||
|
||
return '可启动'
|
||
}
|