Repository navigation
NumberForm migration batch 2: MoneyRequestAmountInput hub #98174
Copy link
Copy link
Open
Labels
MonthlyKSv2KSv2Skip PaymentSkips all the payment process steps for an issue. Use it for fixed-price projects.Skips all the payment process steps for an issue. Use it for fixed-price projects.Task
Description
Sub-issue of #97970.
Migration plan: jmgraa comment.
Second migration batch, same shape as the AmountForm hub. MoneyRequestAmountInput is the second hub, and it sits under a second order hub, MoneyRequestAmountForm, so both migrate together.
Scope
- Step: 5 of the migration plan,
MoneyRequestAmountInputhub - Shape: currency amount, IOU flows
- Scope: 2 files
Files
src/components/MoneyRequestAmountInput.tsx:227— the direct render, plus theNumberWithSymbolFormReftype at:120and:192src/pages/iou/MoneyRequestAmountForm.tsx:124— follow up type and ref update. It wrapsMoneyRequestAmountInputand holds auseRef<NumberWithSymbolFormRef>.
Blast radius
MoneyRequestAmountInput is rendered by 5 files and its props type is used by src/libs/ReportUtils.ts on amountInputProps:
src/components/MoneyRequestConfirmationList/hooks/useSplitParticipants.tsxsrc/components/OptionRow.tsxsrc/components/SelectionList/ListItem/SplitListItem/SplitAmountInput.tsxsrc/components/TransactionItemRow/DataCells/TotalCell.tsxsrc/pages/iou/MoneyRequestAmountForm.tsx
MoneyRequestAmountForm is itself rendered by 4 more files:
src/pages/iou/request/step/IOURequestStepAmount.tsxsrc/pages/iou/request/step/DynamicIOURequestStepTaxAmountPage.tsxsrc/pages/iou/request/step/IOURequestStepTimeRate.tsxsrc/pages/Search/SearchEditMultiple/SearchEditMultipleAmountPage.tsx
Both public APIs stay unchanged, so none of those 9 files needs an edit.
Existing test coverage to keep green
tests/ui/IOURequestStepAmountDraftTest.tsxrenders the whole chain unmocked and assertsgetByTestId('moneyRequestAmountInput'). That test id must survive the migration.tests/unit/hooks/useSplitParticipants.test.tsxmocks@components/MoneyRequestAmountInput, so the mock's shape may need updating if the props change.
Composition
Compose the primitives inline, following the prop mapping table from #98172. No preset.
Out of scope
- Any change to the public props of
MoneyRequestAmountInputorMoneyRequestAmountForm - The 9 downstream consumer files
- The
AmountFormhub — #98173
Acceptance criteria
-
MoneyRequestAmountInput.tsxrenders theNumberFormcomposition, noNumberWithSymbolFormimport - Public props of both files are unchanged, so none of the 9 consumers needs an edit
- The
moneyRequestAmountInputtest id still resolves -
tests/ui/IOURequestStepAmountDraftTest.tsxpasses unchanged - The ref contract still exposes
clearSelection,updateNumberandgetNumber - The seatbelt rows for both files are removed
- Manual pass over the IOU amount page, the tax amount page and split amount editing, in both orientations
- Verify that no errors appear in the JS console
Dependencies
Issue Owner
Current Issue Owner: @bernhardojReactions are currently unavailable
Metadata
Metadata
Assignees
Labels
MonthlyKSv2KSv2Skip PaymentSkips all the payment process steps for an issue. Use it for fixed-price projects.Skips all the payment process steps for an issue. Use it for fixed-price projects.Task
Activity
melvin-bot commentedon Sep 2, 2026
This issue has not been updated in over 15 days. @mountiny, @bernhardoj eroding to Monthly issue.
P.S. Is everyone reading this sure this is really a near-term priority? Be brave: if you disagree, go ahead and close it out. If someone disagrees, they'll reopen it, and if they don't: one less thing to do!