({
modName,
setModName,
modNameEn,
setModNameEn,
modDescription,
setModDescription,
stages,
updateStage,
handleAddStage,
handleRemoveStage,
handleAddTarget,
handleRemoveTarget,
updateTarget,
})
| 450 | handleRemoveTarget: (si: number, ti: number) => void; |
| 451 | updateTarget: (si: number, ti: number, value: string) => void; |
| 452 | }> = ({ |
| 453 | modName, |
| 454 | setModName, |
| 455 | modNameEn, |
| 456 | setModNameEn, |
| 457 | modDescription, |
| 458 | setModDescription, |
| 459 | stages, |
| 460 | updateStage, |
| 461 | handleAddStage, |
| 462 | handleRemoveStage, |
| 463 | handleAddTarget, |
| 464 | handleRemoveTarget, |
| 465 | updateTarget, |
| 466 | }) => { |
| 467 | return ( |
| 468 | <div className={styles.editView}> |
| 469 | <div className={styles.field}> |
| 470 | <label className={styles.label}>Mod Name</label> |
| 471 | <input |
| 472 | className={styles.input} |
| 473 | value={modName} |
| 474 | onChange={(e) => setModName(e.target.value)} |
| 475 | /> |
| 476 | </div> |
| 477 | <div className={styles.field}> |
| 478 | <label className={styles.label}>English Name</label> |
| 479 | <input |
| 480 | className={styles.input} |
| 481 | value={modNameEn} |
| 482 | onChange={(e) => setModNameEn(e.target.value)} |
| 483 | /> |
| 484 | </div> |
| 485 | <div className={styles.field}> |
| 486 | <label className={styles.label}>Description</label> |
| 487 | <textarea |
| 488 | className={styles.textarea} |
| 489 | value={modDescription} |
| 490 | onChange={(e) => setModDescription(e.target.value)} |
| 491 | rows={3} |
| 492 | /> |
| 493 | </div> |
| 494 | |
| 495 | <div className={styles.sectionHeader}> |
| 496 | <span>Stages ({stages.length})</span> |
| 497 | <button className={styles.addBtn} onClick={handleAddStage}> |
| 498 | <Plus size={14} /> Add Stage |
| 499 | </button> |
| 500 | </div> |
| 501 | |
| 502 | {stages.map((stage, si) => ( |
| 503 | <div key={si} className={styles.stageEditCard}> |
| 504 | <div className={styles.stageEditHeader}> |
| 505 | <span className={styles.stageEditIndex}>Stage {si + 1}</span> |
| 506 | <button className={styles.removeBtn} onClick={() => handleRemoveStage(si)}> |
| 507 | <Trash2 size={14} /> |
| 508 | </button> |
| 509 | </div> |
nothing calls this directly
no test coverage detected