File tree Expand file tree Collapse file tree 4 files changed +23
-6
lines changed Expand file tree Collapse file tree 4 files changed +23
-6
lines changed Original file line number Diff line number Diff line change @@ -14,6 +14,7 @@ import { memo } from 'react'
14
14
import { Paths } from 'type-fest'
15
15
16
16
import { i18n , useTranslation } from '../../i18n/i18n'
17
+ import { isCustomLevel } from '../../models/level'
17
18
import { DifficultyPicker } from './DifficultyPicker'
18
19
import { LevelSelect } from './LevelSelect'
19
20
import { editorAtoms , useEdit } from './editor-state'
@@ -100,10 +101,19 @@ export const InfoEditor = memo(({ className }: InfoEditorProps) => {
100
101
< LevelSelect
101
102
difficulty = { info . difficulty }
102
103
value = { info . stageName }
103
- onChange = { ( value ) => {
104
+ onChange = { ( stageId , level ) => {
104
105
edit ( ( ) => {
105
106
setInfo ( ( prev ) => {
106
- prev . stageName = value
107
+ prev . stageName = stageId
108
+
109
+ if ( level && ! prev . doc . title ) {
110
+ // 如果没有标题,则使用关卡名作为标题
111
+ prev . doc . title = isCustomLevel ( level )
112
+ ? level . name
113
+ : [ level . catTwo , level . catThree , level . name ]
114
+ . filter ( Boolean )
115
+ . join ( ' - ' )
116
+ }
107
117
} )
108
118
return {
109
119
action : 'update-level' ,
Original file line number Diff line number Diff line change @@ -27,7 +27,7 @@ interface LevelSelectProps {
27
27
inputRef ?: Ref < HTMLInputElement >
28
28
disabled ?: boolean
29
29
value ?: string
30
- onChange : ( level : string ) => void
30
+ onChange : ( stageId : string , level ?: Level ) => void
31
31
}
32
32
33
33
export const LevelSelect : FC < LevelSelectProps > = ( {
@@ -203,7 +203,7 @@ export const LevelSelect: FC<LevelSelectProps> = ({
203
203
// 重置 query 以显示同类关卡
204
204
updateQuery ( '' , true )
205
205
}
206
- onChange ( level . stageId )
206
+ onChange ( level . stageId , level )
207
207
} }
208
208
createNewItemFromQuery = { ( query ) => createCustomLevel ( query ) }
209
209
createNewItemRenderer = { ( query , active , handleClick ) => (
Original file line number Diff line number Diff line change 3402
3402
"en" : " Failed to parse operation"
3403
3403
}
3404
3404
},
3405
+ "level" : {
3406
+ "custom_level" : {
3407
+ "cn" : " 自定义关卡" ,
3408
+ "en" : " Custom Stage"
3409
+ }
3410
+ },
3405
3411
"operator" : {
3406
3412
"operator" : {
3407
3413
"cn" : " 干员" ,
3408
3414
"en" : " Operator"
3409
3415
},
3410
- "operator_group" :{
3416
+ "operator_group" : {
3411
3417
"cn" : " 干员组" ,
3412
3418
"en" : " Operator Group"
3413
3419
},
Original file line number Diff line number Diff line change 8
8
*
9
9
* Only the first two kinds are supported in MAA Copilot.
10
10
*/
11
+ import { i18n } from '../i18n/i18n'
11
12
import { Level , OpDifficulty } from './operation'
12
13
13
14
const HARD_MODE_SUFFIX = '#f#'
@@ -22,7 +23,7 @@ export function createCustomLevel(name: string): Level {
22
23
name,
23
24
stageId : name ,
24
25
levelId : '' ,
25
- catOne : '自定义关卡' ,
26
+ catOne : i18n . models . level . custom_level ,
26
27
catTwo : '' ,
27
28
catThree : name ,
28
29
width : 0 ,
You can’t perform that action at this time.
0 commit comments