Skip to content

Defer numeric input clamping to blur/Enter#59

Merged
jasonmadigan merged 2 commits into
mainfrom
55-defer-numeric-input-clamping
Jun 3, 2026
Merged

Defer numeric input clamping to blur/Enter#59
jasonmadigan merged 2 commits into
mainfrom
55-defer-numeric-input-clamping

Conversation

@jasonmadigan

Copy link
Copy Markdown
Collaborator

Summary

Fixes numeric input validation firing on every keystroke, making fields unusable. Extracts a shared NumericInput component that allows free typing and only clamps to min/max on blur or Enter.

Closes #55

Changes

  • New NumericInput component with deferred clamping logic
  • Replaced inline clamping in BinConfigurator, BinEditorToolbar, SettingsPopover
  • Exported clampNumericValue as a pure function for testability

Test plan

  • 9 unit tests (NumericInput.test.ts) covering clamping, parsing, edge cases
  • 4 Playwright e2e tests (numeric-input.spec.ts) covering free typing, blur clamp, Enter clamp, empty revert
  • tsc --noEmit clean
  • All 14 tests pass

Numeric inputs were clamping values on every keystroke, making editing
unusable. Created NumericInput component that allows free typing and
only clamps to min/max on blur, Enter, or Escape. Replaces inline
clamping in BinConfigurator SliderRow, BinEditorToolbar label fields,
and SettingsPopover bed size input. Added vitest config for path alias
resolution.

Signed-off-by: Jason Madigan <[email protected]>
@jasonmadigan
jasonmadigan marked this pull request as ready for review June 3, 2026 15:26
@jasonmadigan
jasonmadigan merged commit 2a0a6ec into main Jun 3, 2026
1 check passed
@jasonmadigan
jasonmadigan deleted the 55-defer-numeric-input-clamping branch June 14, 2026 18:15
shanetinklenberg pushed a commit to shanetinklenberg/tracefinity that referenced this pull request Jun 28, 2026
* Defer numeric input validation to blur/Enter (tracefinity#55)

Numeric inputs were clamping values on every keystroke, making editing
unusable. Created NumericInput component that allows free typing and
only clamps to min/max on blur, Enter, or Escape. Replaces inline
clamping in BinConfigurator SliderRow, BinEditorToolbar label fields,
and SettingsPopover bed size input. Added vitest config for path alias
resolution.

Signed-off-by: Jason Madigan <[email protected]>

* fix: default step to 1, export clamping logic for testability

Signed-off-by: Jason Madigan <[email protected]>

---------

Signed-off-by: Jason Madigan <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Editing Numeric Fields

1 participant