fix(worksheets): correct findNearestPreset direction logic

Fix broken OR logic in findNearestPreset that allowed presets to be
classified as both "harder" AND "easier" simultaneously. This caused
the system to select the current preset as the "next" target, preventing
navigation away from presets.

Changed to AND logic requiring:
- Harder preset: Not easier in ANY dimension AND harder in AT LEAST ONE
- Easier preset: Not harder in ANY dimension AND easier in AT LEAST ONE

This prevents selecting the current preset and ensures proper
directional navigation toward adjacent presets.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Thomas Hallock
2025-11-07 13:31:00 -06:00
parent 41f225436e
commit 878cf02511

View File

@@ -701,9 +701,18 @@ export function findNearestPreset(
)
// Calculate if this preset is harder or easier
// Harder = higher regrouping OR lower scaffolding (higher scaffolding level number)
const isHarder = regrouping > currentRegrouping || scaffolding > currentScaffolding
const isEasier = regrouping < currentRegrouping || scaffolding < currentScaffolding
// Harder = not easier in ANY dimension AND harder in AT LEAST ONE dimension
// This prevents selecting the current preset as "next" when already at a preset
const isHarder =
regrouping >= currentRegrouping &&
scaffolding >= currentScaffolding &&
(regrouping > currentRegrouping || scaffolding > currentScaffolding)
// Easier = not harder in ANY dimension AND easier in AT LEAST ONE dimension
const isEasier =
regrouping <= currentRegrouping &&
scaffolding <= currentScaffolding &&
(regrouping < currentRegrouping || scaffolding < currentScaffolding)
return { profile, distance, regrouping, scaffolding, isHarder, isEasier }
})