Overview
Resolve the reported Card, Withdraw bank, and Deposit UI issues from develop.
Bug links and changes
-
Card keyboard covers lower inputs
https://hola-tech.sg.larksuite.com/record/A6rLriMRue1W5IcnJAmlOP04gTg
UseKeyboardAwareScrollViewon Android so focused lower fields move above the keyboard. Preserve the existing iOS avoidance behavior verified by Maestro. Use explicit React Native flex and padding styles on both platforms. -
Completed Withdraw bank form does not advance
https://hola-tech.sg.larksuite.com/record/U80ErhS7DeMFZ0cSPyflwvtigPe
Accept valid nine-digit ABA routing numbers and enable Save. Show a visible validation error after blurring an incomplete routing field, while composing the shared Input blur handlers so focus styling still resets. Integration coverage proves Save opens passcode and submits the valid beneficiary payload. -
Card typography differs from the app
https://hola-tech.sg.larksuite.com/record/GV9PrMUREeMei5c2ZXZl4AmggKc
Replace platform serif overrides with DM Sans for the Card title and section labels. -
Routing input accepts only eight digits
https://hola-tech.sg.larksuite.com/record/O5JbrBzPjeYpcwcpHYSl6cKOgqg
The currentdevelopimplementation already accepts nine digits. Maestro verifies021000021remains intact with no routing error. -
Deposit from All has no Cash/Crypto icons
https://hola-tech.sg.larksuite.com/record/WmHArpDP2e9fD0cEKRllCgWrgOf
Reuse the HomeDepositOptionsModalfrom All services, including its Landmark and Bitcoin icons.
Review hardening
- Compose both
onFocusandonBlurin the shared Input, with real-component focus styling tests. - Reset routing validation while editing and after clearing the field.
- Open Deposit and Withdraw sheets only after the All services modal transition.
- Use
KeyboardStickyViewfor the Android submit footer and move horizontal padding tocontentContainerStyle. - Remove the orphaned
/add-fundsroute, component, tests, and stack registration. - Use configured NativeWind DM Sans classes instead of hardcoded font families.
Verification
- Full Jest: 1639/1639 tests, 155 suites.
- Cardholder apply integration: 32/32 tests after the final keyboard change.
- Withdraw bank and ABA validation: 28/28 tests.
- TypeScript
pnpm type-check: pass. - Full ESLint: 0 errors.
- Maestro CLI on iOS with an isolated localhost fixture: pass for All > Deposit icons, Card typography, lower Card fields above the keyboard, incomplete-routing blur errors, and valid nine-digit routing input.
- Maestro flow:
fe/.maestro/card-withdraw-deposit-ui/verify.yaml.
Android emulator is not installed on the verification host; the Android keyboard fix uses KeyboardAwareScrollView for focused fields and KeyboardStickyView for the submit footer, while iOS behavior is visually rechecked.