UI: reorder game modes (Assist first), rename Sight Reading -> Learn Notes

Internal key 'sight_reading' kept for localStorage compatibility;
TODO added at gameMode type def for future rename + migration.
This commit is contained in:
2026-09-19 23:45:53 +02:00
parent fe153a777a
commit baa66c0dc7
2 changed files with 14 additions and 8 deletions

View File

@@ -277,11 +277,19 @@ function App() {
<div className="header-controls"> <div className="header-controls">
<div className="game-mode-toggle"> <div className="game-mode-toggle">
<button
className={`toggle-option ${settings.gameMode === 'assist' ? 'active' : ''}`}
onClick={() => setSettings(s => ({ ...s, gameMode: 'assist' }))}
title="Practice companion: shows played notes while you work from paper"
>
Assist
</button>
<button <button
className={`toggle-option ${settings.gameMode === 'sight_reading' ? 'active' : ''}`} className={`toggle-option ${settings.gameMode === 'sight_reading' ? 'active' : ''}`}
onClick={() => setSettings(s => ({ ...s, gameMode: 'sight_reading' }))} onClick={() => setSettings(s => ({ ...s, gameMode: 'sight_reading' }))}
title="Learn to read notes from the staff"
> >
Sight Reading Learn Notes
</button> </button>
<button <button
className={`toggle-option ${settings.gameMode === 'ear_training' ? 'active' : ''}`} className={`toggle-option ${settings.gameMode === 'ear_training' ? 'active' : ''}`}
@@ -296,13 +304,6 @@ function App() {
> >
Phrases Phrases
</button> </button>
<button
className={`toggle-option ${settings.gameMode === 'assist' ? 'active' : ''}`}
onClick={() => setSettings(s => ({ ...s, gameMode: 'assist' }))}
title="Practice companion: shows played notes while you work from paper"
>
Assist
</button>
</div> </div>
<button <button

View File

@@ -134,6 +134,11 @@ export interface AppSettings {
instrument: string; instrument: string;
rhythm: RhythmSettings; rhythm: RhythmSettings;
zenMode: boolean; zenMode: boolean;
/**
* TODO: Rename 'sight_reading' to 'learn_notes' internally (UI label is
* already "Learn Notes"). Deferred because the value is persisted in
* localStorage — needs a settings migration for existing users.
*/
gameMode: 'sight_reading' | 'ear_training' | 'phrase' | 'assist'; gameMode: 'sight_reading' | 'ear_training' | 'phrase' | 'assist';
customMinFret?: number; customMinFret?: number;
customMaxFret?: number; customMaxFret?: number;