📌 Description
SettlementForm (src/components/SettlementForm.tsx) and QuoteForm (src/components/QuoteForm.tsx) both set inputMode="numeric" on their amount <input>. On iOS and many Android keyboards, inputMode="numeric" shows a digit-only keypad with no decimal point key, while inputMode="decimal" shows the same digit keypad plus a decimal separator. Since both forms accept and validate fractional amounts (validate() in SettlementForm.tsx uses Number(amount) with no integer-only constraint, and Stellar amounts routinely carry decimal precision), mobile users currently have no easy way to type a fractional amount like 12.5 without switching keyboards or pasting.
🧩 Requirements and context
- Change
inputMode="numeric" to inputMode="decimal" on the amount input in SettlementForm.tsx and on the amount input in QuoteForm.tsx.
- No change to the fields' existing
validate()/parsing logic, which already accepts decimal strings via Number(amount).
- No visual/layout change beyond the mobile keyboard variant shown.
🛠️ Suggested execution
- Update the amount
<input>'s inputMode attribute in src/components/SettlementForm.tsx and src/components/QuoteForm.tsx.
- Extend
SettlementForm.test.tsx/QuoteForm.test.tsx with an assertion on the input's inputMode attribute, and confirm the existing decimal-amount test cases (if any) still pass.
✅ Acceptance criteria
🔒 Security notes
No new attack surface; a mobile input-affordance fix with no change to validation logic.
📋 Guidelines
- Minimum 95% test coverage
- Clear documentation
- Timeframe: 96 hours
📌 Description
SettlementForm(src/components/SettlementForm.tsx) andQuoteForm(src/components/QuoteForm.tsx) both setinputMode="numeric"on their amount<input>. On iOS and many Android keyboards,inputMode="numeric"shows a digit-only keypad with no decimal point key, whileinputMode="decimal"shows the same digit keypad plus a decimal separator. Since both forms accept and validate fractional amounts (validate()inSettlementForm.tsxusesNumber(amount)with no integer-only constraint, and Stellar amounts routinely carry decimal precision), mobile users currently have no easy way to type a fractional amount like12.5without switching keyboards or pasting.🧩 Requirements and context
inputMode="numeric"toinputMode="decimal"on the amount input inSettlementForm.tsxand on the amount input inQuoteForm.tsx.validate()/parsing logic, which already accepts decimal strings viaNumber(amount).🛠️ Suggested execution
<input>'sinputModeattribute insrc/components/SettlementForm.tsxandsrc/components/QuoteForm.tsx.SettlementForm.test.tsx/QuoteForm.test.tsxwith an assertion on the input'sinputModeattribute, and confirm the existing decimal-amount test cases (if any) still pass.✅ Acceptance criteria
inputMode="decimal".inputModeattribute.🔒 Security notes
No new attack surface; a mobile input-affordance fix with no change to validation logic.
📋 Guidelines