fix: preserve user's scaffolding settings when changing skills
Fix issue where changing skills in mastery mode would overwrite the user's custom scaffolding settings with the new skill's recommendations.
**Problem:**
When user:
1. Sets custom scaffolding (e.g., "auto" or "never")
2. Switches to a different skill in mastery progression
3. Returns to scaffolding tab
The scaffolding controls would show the new skill's recommendations instead of the user's original settings.
**Root Cause:**
MasteryModePanel.tsx was calling `onChange({ displayRules: currentSkill.recommendedScaffolding })` every time the skill changed, overwriting the user's custom settings.
**Fix:**
- Remove `displayRules` from onChange call when skill changes
- Skill's recommendedScaffolding is only used at render time when resolving "auto" values
- User's explicit scaffolding choices now persist across skill changes
**How it works now:**
- User's displayRules remain unchanged when switching skills
- "Auto" values resolve to new skill's recommendations (visual feedback shows this)
- Manual overrides persist regardless of skill changes
**Example:**
```
User settings: { answerBoxes: 'auto', carryBoxes: 'never' }
Switch from Skill A to Skill B:
- answerBoxes: 'auto' → Resolves to Skill B's recommendation (green highlight updates)
- carryBoxes: 'never' → Stays 'never' (manual override persists)
```
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
fbe776ac09
commit
1eb04ce0c4
|
|
@ -128,16 +128,17 @@ export function MasteryModePanel({ formState, onChange, isDark = false }: Master
|
|||
digitRange: currentSkill.digitRange,
|
||||
pAnyStart: currentSkill.regroupingConfig.pAnyStart,
|
||||
pAllStart: currentSkill.regroupingConfig.pAllStart,
|
||||
displayRules: currentSkill.recommendedScaffolding,
|
||||
operator: currentSkill.operator,
|
||||
})
|
||||
|
||||
// Apply skill's configuration to form state
|
||||
// NOTE: We do NOT set displayRules here - the skill's recommendedScaffolding
|
||||
// is only used at render time when resolving "auto" values.
|
||||
// Setting displayRules here would overwrite the user's custom scaffolding settings.
|
||||
onChange({
|
||||
digitRange: currentSkill.digitRange,
|
||||
pAnyStart: currentSkill.regroupingConfig.pAnyStart,
|
||||
pAllStart: currentSkill.regroupingConfig.pAllStart,
|
||||
displayRules: currentSkill.recommendedScaffolding,
|
||||
operator: currentSkill.operator,
|
||||
// Do NOT force interpolate - let user control it via the toggle
|
||||
} as Partial<WorksheetFormState>)
|
||||
|
|
|
|||
Loading…
Reference in New Issue