Skip to content

PM-5116: Preserve challenge prize input focus#1880

Merged
jmgasper merged 1 commit into
devfrom
PM-5116
May 26, 2026
Merged

PM-5116: Preserve challenge prize input focus#1880
jmgasper merged 1 commit into
devfrom
PM-5116

Conversation

@jmgasper
Copy link
Copy Markdown
Collaborator

What was broken
Challenge prize amount inputs could lose focus after a digit was entered, interrupting continuous typing in the Work Manager challenge editor.

Root cause
Prize row updates are driven through React Hook Form as nested prize values change. The active placement-prize input was not tracked or restored when those controlled updates re-rendered the row.

What was changed
Track the active placement-prize row in ChallengePrizesField and allow PrizeInput to restore focus and caret position for that active row after value updates. Updated the challenge editor documentation for the focus-preservation behavior.

Any added/updated tests
Updated the ChallengePrizesField test to exercise the real PrizeInput and added coverage for continuously typing multiple digits into an empty prize input.

Validation

  • yarn test:no-watch --runTestsByPath src/apps/work/src/pages/challenges/ChallengeEditorPage/components/ChallengePrizesField/ChallengePrizesField.spec.tsx
  • yarn lint
  • yarn run build

Note: yarn test:no-watch was also run for the full repo suite and currently fails in unrelated wallet-admin, wallet, work payment, and engagements tests due existing module-resolution or mock/export issues outside this PM-5116 change.

What was broken
Challenge prize amount inputs could lose focus after a digit was entered, interrupting continuous typing in the Work Manager challenge editor.

Root cause
Prize row updates are driven through React Hook Form as nested prize values change. The active placement-prize input was not tracked or restored when those controlled updates re-rendered the row.

What was changed
Track the active placement-prize row in ChallengePrizesField and allow PrizeInput to restore focus and caret position for that active row after value updates. Updated the challenge editor documentation for the focus-preservation behavior.

Any added/updated tests
Updated the ChallengePrizesField test to exercise the real PrizeInput and added coverage for continuously typing multiple digits into an empty prize input.
@jmgasper jmgasper requested a review from kkartunov as a code owner May 26, 2026 01:20
@jmgasper jmgasper merged commit e4bffc0 into dev May 26, 2026
7 checks passed
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.

1 participant