Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
04a4154
feat: Update option missing for Personal Bank Accounts in ND compared…
TaduJR Jan 20, 2026
c3a4b82
chore: hoist function calls and remove unnecessary comments
TaduJR Jan 20, 2026
aa187c7
fix: skipped steps indices for update flow (adjust from 1-indexed to …
TaduJR Jan 20, 2026
a2e71f6
fix: update success screen header and description to match design moc…
TaduJR Jan 20, 2026
6e9e3e6
chore: run prettier
TaduJR Jan 20, 2026
2a7d4a4
test: add more comprehensive tests for BankAccountUtils
TaduJR Jan 20, 2026
cb9dea9
fix: use camelCase property names in BankAccountUtils tests
TaduJR Jan 20, 2026
6af069f
refactor: use it.each for parameterized tests in BankAccountUtilsTest
TaduJR Jan 20, 2026
b978637
fix: add 'as const' to address country field in tests
TaduJR Jan 20, 2026
a824771
Merge branch 'main' of https://github.com/TaduJR/App into feat-Update…
TaduJR Jan 30, 2026
e4d44e7
feat: add address and phone fields to BankAccountAdditionalData
TaduJR Jan 30, 2026
60b86e2
Merge branch 'main' of https://github.com/TaduJR/App into feat-Update…
TaduJR Jan 30, 2026
b002316
Merge branch 'main' of https://github.com/TaduJR/App into feat-Update…
TaduJR Feb 12, 2026
3896c94
refactor: check additionalData instead of privatePersonalDetails for …
TaduJR Feb 12, 2026
88e013d
chore: add optimistic BANK_ACCOUNT_LIST update, remove useMemo and ob…
TaduJR Feb 12, 2026
26a07f5
refactor: migrate to useSubPage
TaduJR Feb 12, 2026
6083f0e
fix: improve unit test coverage with undefined fields and edge cases
TaduJR Feb 12, 2026
d0270ff
fix: populate address fields from profile when address step is skipped
TaduJR Feb 12, 2026
44231fa
Merge branch 'main' of https://github.com/TaduJR/App into feat-Update…
TaduJR Mar 1, 2026
5150e63
fix: optimistic bank account update, and back button for skipped steps
TaduJR Mar 1, 2026
13aac84
fix: skip to first non-skipped step and remove addresses array replac…
TaduJR Mar 1, 2026
58d05d8
fix: default to US when additionalData.country is absent and restore …
TaduJR Mar 1, 2026
77de2bc
fix: clear shared bank account state on unmount to prevent stale data
TaduJR Mar 1, 2026
20d965b
fix: clean up shared function side effects and scope shouldDelayAutoF…
TaduJR Mar 2, 2026
0da7603
Merge branch 'main' of https://github.com/TaduJR/App into feat-Update…
TaduJR Mar 2, 2026
4b29224
fix: clear stale drafts on mount instead of unmount
TaduJR Mar 2, 2026
de4d70d
Merge branch 'main' of https://github.com/TaduJR/App into feat-Update…
TaduJR Mar 5, 2026
3ccd820
Merge branch 'main' of https://github.com/TaduJR/App into feat-Update…
TaduJR Mar 5, 2026
2d4e88d
fix: duplicate error display by removing redundant HOME_ADDRESS_FORM …
TaduJR Mar 5, 2026
071e1bf
fix: duplicate error display and remove stale badgeStyle prop
TaduJR Mar 5, 2026
4a6ccf2
Merge branch 'main' of https://github.com/TaduJR/App into feat-Update…
TaduJR Mar 5, 2026
ee227f5
Merge branch 'main' of https://github.com/TaduJR/App into feat-Update…
TaduJR Mar 5, 2026
cbed597
fix: prevent crash when all update flow pages are skipped
TaduJR Mar 5, 2026
2a9706b
fix: remove unused WalletTravelCVVSection import in WalletPage
TaduJR Mar 5, 2026
4bad629
fix: add bankAccountID param and fix companyPhone in UpdatePersonalBa…
TaduJR Mar 5, 2026
95aad39
fix: resolve TDZ error from parameters used before declaration in opt…
TaduJR Mar 5, 2026
5bfe57e
fix: remove incorrect PRIVATE_PERSONAL_DETAILS optimistic update from…
TaduJR Mar 6, 2026
026ef11
fix: improve type safety, DRY, and optimistic update accuracy
TaduJR Mar 6, 2026
f9af562
fix: scope bank account update to the selected account
TaduJR Mar 6, 2026
bf11771
fix: remove debug loggers and unused import
TaduJR Mar 6, 2026
4220e79
fix: remove dead fallback in getCompletedStepsForBankAccount and add …
TaduJR Mar 6, 2026
a00ab2a
fix: redirect to Wallet when bankAccountID is missing on direct URL a…
TaduJR Mar 6, 2026
0c36b83
Merge branch 'main' of https://github.com/TaduJR/App into feat-Update…
TaduJR Mar 9, 2026
aa89820
Merge branch 'main' of https://github.com/TaduJR/App into feat-Update…
TaduJR Mar 9, 2026
1100f20
fix: replace useEffect redirect with early return guard in submitPers…
TaduJR Mar 9, 2026
9dcfbc3
fix: display BE errors above submit button, hide country selector, fi…
TaduJR Mar 10, 2026
e030284
refactor: convert Promise.all().then() to async/await in onBankAccoun…
TaduJR Mar 10, 2026
59f9aad
Merge branch 'main' of https://github.com/TaduJR/App into feat-Update…
TaduJR Mar 10, 2026
fd27b68
refactor: extract getPageNamesForCompletedSteps to deduplicate step-t…
TaduJR Mar 10, 2026
80d6ba4
fix: display API errors on all steps, clear drafts on back, remove un…
TaduJR Mar 10, 2026
0ff6b9b
fix: remove form-level error from failureData
TaduJR Mar 10, 2026
9796e9d
fix: prevent empty draft strings from blocking address fallback
TaduJR Mar 10, 2026
f1ca43e
fix: use undefined instead of empty strings in draft seeding to prese…
TaduJR Mar 10, 2026
cdc344a
fix: keep street2 as empty string in draft
TaduJR Mar 10, 2026
93d9ae1
fix: clear HOME_ADDRESS_FORM draft on flow entry to prevent stale add…
TaduJR Mar 10, 2026
51a41cd
fix: revert setPersonalBankAccountID into Promise.all due to lint error
TaduJR Mar 10, 2026
e55959a
fix: eliminate Onyx set/merge race by using atomic reset for bank acc…
TaduJR Mar 10, 2026
8e7484d
fix: use getStreetLines utility and add error handling in WalletPage
TaduJR Mar 10, 2026
c1bd227
refactor: make bankAccountID required, add displayName and logging, t…
TaduJR Mar 10, 2026
03d642b
fix: atomic draft seeding, country validation with hidden selector
TaduJR Mar 10, 2026
7368821
fix: use null instead of undefined in rollback to ensure Onyx merge c…
TaduJR Mar 10, 2026
50d274a
fix: Remove redundant useMemo/useCallback (React Compiler handles mem…
TaduJR Mar 10, 2026
d856fe5
chore: Remove dead setPersonalBankAccountID
TaduJR Mar 10, 2026
d0c3896
chore: Restore useCallback in AddressForm validator
TaduJR Mar 10, 2026
070c836
Merge branch 'main' of https://github.com/TaduJR/App into feat-Update…
TaduJR Mar 10, 2026
0a1cc30
chore: Restore removed comment during merge
TaduJR Mar 10, 2026
b97cd23
Merge branch 'main' of https://github.com/TaduJR/App into feat-Update…
TaduJR Mar 10, 2026
1d70b52
fix: draft wipe on back navigation between substeps
TaduJR Mar 10, 2026
dd20807
Merge branch 'main' of https://github.com/TaduJR/App into feat-Update…
TaduJR Mar 12, 2026
6195057
fix: require all API params, remove form entries from onyxData, remov…
TaduJR Mar 12, 2026
e6bb969
fix: Replace PersonalBankAccountForm cast with typed PersonalBankAcco…
TaduJR Mar 12, 2026
272ffc0
Merge branch 'main' of https://github.com/TaduJR/App into feat-Update…
TaduJR Mar 13, 2026
d33deaf
fix: Revert unnecessary change to getFormattedStreet shared utility
TaduJR Mar 13, 2026
686b8c0
fix: Remove duplicate error message on API failure
TaduJR Mar 13, 2026
2037f90
Merge branch 'main' of https://github.com/TaduJR/App into feat-Update…
TaduJR Mar 16, 2026
d26ce78
fix: Add unmount cleanup and restore error display on API failure
TaduJR Mar 16, 2026
1413593
Merge branch 'main' of https://github.com/TaduJR/App into feat-Update…
TaduJR Mar 17, 2026
dcc55a5
Merge branch 'main' of https://github.com/TaduJR/App into feat-Update…
TaduJR Mar 17, 2026
87e2fb9
Merge branch 'main' of https://github.com/TaduJR/App into feat-Update…
TaduJR Mar 18, 2026
3726645
fix: Disable Next button when offline in update flow, add unmount cle…
TaduJR Mar 18, 2026
7cd6792
chore: Remove testing mocks from BankAccountUtils
TaduJR Mar 18, 2026
a8f07d6
fix: Remove duplicate error display - FormWrapper already reads from …
TaduJR Mar 19, 2026
05480f7
fix: Add missing-info indicator to account tab and redirect when bank…
TaduJR Mar 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions src/CONST/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2916,6 +2916,14 @@ const CONST = {
VENDOR_BILL: 'VENDOR_BILL',
},

UPDATE_PERSONAL_BANK_ACCOUNT: {
PAGE_NAME: {
LEGAL_NAME: 'legal-name',
ADDRESS: 'address',
PHONE_NUMBER: 'phone-number',
},
},

MISSING_PERSONAL_DETAILS: {
STEP_INDEX_LIST: ['1', '2', '3', '4'],
STEP_INDEX_LIST_WITH_PIN: ['1', '2', '3', '4', '5'],
Expand Down
9 changes: 9 additions & 0 deletions src/ROUTES.ts
Original file line number Diff line number Diff line change
Expand Up @@ -455,6 +455,15 @@ const ROUTES = {
},
SETTINGS_ADD_US_BANK_ACCOUNT: 'settings/wallet/add-us-bank-account',
SETTINGS_ADD_US_BANK_ACCOUNT_ENTRY_POINT: 'settings/wallet/add-us-bank-account/entry-point',
SETTINGS_UPDATE_PERSONAL_BANK_ACCOUNT: {
route: 'settings/wallet/update-personal-bank-account/:subPage?',
getRoute: (subPage?: string) => {
if (!subPage) {
return 'settings/wallet/update-personal-bank-account' as const;
}
return `settings/wallet/update-personal-bank-account/${subPage}` as const;
},
},
SETTINGS_ADD_BANK_ACCOUNT_SELECT_COUNTRY_VERIFY_ACCOUNT: `settings/wallet/add-bank-account/select-country/${VERIFY_ACCOUNT}`,
SETTINGS_BANK_ACCOUNT_PURPOSE: 'settings/wallet/bank-account-purpose',
SETTINGS_ENABLE_PAYMENTS: 'settings/wallet/enable-payments',
Expand Down
1 change: 1 addition & 0 deletions src/SCREENS.ts
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ const SCREENS = {
ADD_BANK_ACCOUNT: 'Settings_Add_Bank_Account',
ADD_US_BANK_ACCOUNT: 'Settings_Add_US_Bank_Account',
ADD_US_BANK_ACCOUNT_ENTRY_POINT: 'Settings_Add_US_Bank_Account_Entry_Point',
UPDATE_PERSONAL_BANK_ACCOUNT: 'Settings_Update_Personal_Bank_Account',
ADD_BANK_ACCOUNT_SELECT_COUNTRY_VERIFY_ACCOUNT: 'Settings_Add_Bank_Account_Select_Country_Verify_Account',
BANK_ACCOUNT_PURPOSE: 'Settings_Bank_Account_Purpose',
CLOSE: 'Settings_Close',
Expand Down
43 changes: 29 additions & 14 deletions src/components/AddressForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,12 @@ type AddressFormProps = {

/** A unique Onyx key identifying the form */
formID: typeof ONYXKEYS.FORMS.HOME_ADDRESS_FORM;

/** Whether to hide the country selector (e.g. when country cannot be changed) */
shouldHideCountrySelector?: boolean;

/** Whether the form submit button should be enabled when offline */
enabledWhenOffline?: boolean;
};

function AddressForm({
Expand All @@ -69,6 +75,8 @@ function AddressForm({
street2 = '',
submitButtonText = '',
zip = '',
shouldHideCountrySelector = false,
enabledWhenOffline: enabledWhenOfflineProp = true,
}: AddressFormProps) {
const styles = useThemeStyles();
const {translate} = useLocalize();
Expand All @@ -87,11 +95,14 @@ function AddressForm({
*/

const validator = useCallback(
(values: FormOnyxValues<typeof ONYXKEYS.FORMS.HOME_ADDRESS_FORM>): Errors => {
(rawValues: FormOnyxValues<typeof ONYXKEYS.FORMS.HOME_ADDRESS_FORM>): Errors => {
// When hidden, the country input is unregistered so fall back to the country prop.
const values = shouldHideCountrySelector ? {...rawValues, country: rawValues.country || country} : rawValues;

const errors: Errors & {
zipPostCode?: string | string[];
} = {};
const requiredFields = ['addressLine1', 'city', 'country', 'state'] as const;
const requiredFields = shouldHideCountrySelector ? (['addressLine1', 'city', 'state'] as const) : (['addressLine1', 'city', 'country', 'state'] as const);

// Check "State" dropdown is a valid state if selected Country is USA
if (values.country === CONST.COUNTRY.US && !values.state) {
Expand Down Expand Up @@ -145,7 +156,7 @@ function AddressForm({

return errors;
},
[translate],
[translate, shouldHideCountrySelector, country],
);

return (
Expand All @@ -155,7 +166,7 @@ function AddressForm({
validate={validator}
onSubmit={onSubmit}
submitButtonText={submitButtonText}
enabledWhenOffline
enabledWhenOffline={enabledWhenOfflineProp}
addBottomSafeAreaPadding
>
<View>
Expand Down Expand Up @@ -192,16 +203,20 @@ function AddressForm({
autoComplete="address-line2"
/>
<View style={styles.formSpaceVertical} />
<View style={styles.mhn5}>
<InputWrapper
InputComponent={CountrySelector}
inputID={INPUT_IDS.COUNTRY}
value={country}
onValueChange={onAddressChanged}
shouldSaveDraft={shouldSaveDraft}
/>
</View>
<View style={styles.formSpaceVertical} />
{!shouldHideCountrySelector && (
<>
<View style={styles.mhn5}>
<InputWrapper
InputComponent={CountrySelector}
inputID={INPUT_IDS.COUNTRY}
value={country}
onValueChange={onAddressChanged}
shouldSaveDraft={shouldSaveDraft}
/>
</View>
<View style={styles.formSpaceVertical} />
</>
)}
{isUSAForm ? (
<View style={styles.mhn5}>
<InputWrapper
Expand Down
6 changes: 5 additions & 1 deletion src/components/SubStepForms/FullNameStep.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,9 @@ type FullNameStepProps<TFormID extends keyof OnyxFormValuesMapping> = SubStepPro

/** Whether to show the Patriot Act help link (EnablePayments-only) */
shouldShowPatriotActLink?: boolean;

/** Whether the form submit button should be enabled when offline */
enabledWhenOffline?: boolean;
};

function FullNameStep<TFormID extends keyof OnyxFormValuesMapping>({
Expand All @@ -72,6 +75,7 @@ function FullNameStep<TFormID extends keyof OnyxFormValuesMapping>({
customLastNameLabel,
shouldShowPatriotActLink = false,
forwardedFSClass,
enabledWhenOffline: enabledWhenOfflineProp = true,
}: FullNameStepProps<TFormID>) {
const {translate} = useLocalize();
const styles = useThemeStyles();
Expand Down Expand Up @@ -125,7 +129,7 @@ function FullNameStep<TFormID extends keyof OnyxFormValuesMapping>({
validate={customValidate ?? validate}
onSubmit={onSubmit}
style={[styles.mh5, styles.flexGrow1]}
enabledWhenOffline
enabledWhenOffline={enabledWhenOfflineProp}
>
<View>
<Text style={[styles.textHeadlineLineHeightXXL, styles.mb6]}>{formTitle}</Text>
Expand Down
4 changes: 2 additions & 2 deletions src/hooks/useNavigationTabBarIndicatorChecks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import type {ValueOf} from 'type-fest';
import {isConnectionInProgress} from '@libs/actions/connections';
import {shouldShowQBOReimbursableExportDestinationAccountError} from '@libs/actions/connections/QuickbooksOnline';
import {hasPaymentMethodError} from '@libs/actions/PaymentMethods';
import {hasPartiallySetupBankAccount} from '@libs/BankAccountUtils';
import {hasPartiallySetupBankAccount, hasPersonalBankAccountMissingInfo} from '@libs/BankAccountUtils';
import {hasPendingExpensifyCardAction} from '@libs/CardUtils';
import {hasDomainErrors} from '@libs/DomainUtils';
import {getUberConnectionErrorDirectlyFromPolicy, shouldShowCustomUnitsError, shouldShowEmployeeListError, shouldShowPolicyError, shouldShowSyncError} from '@libs/PolicyUtils';
Expand Down Expand Up @@ -104,7 +104,7 @@ function useNavigationTabBarIndicatorChecks(): NavigationTabBarChecksResult {
amountOwed,
ownerBillingGraceEndPeriod,
),
[CONST.INDICATOR_STATUS.HAS_PARTIALLY_SETUP_BANK_ACCOUNT_INFO]: hasPartiallySetupBankAccount(bankAccountList),
[CONST.INDICATOR_STATUS.HAS_PARTIALLY_SETUP_BANK_ACCOUNT_INFO]: hasPartiallySetupBankAccount(bankAccountList) || hasPersonalBankAccountMissingInfo(bankAccountList),
};

const domainChecks: Partial<Record<IndicatorStatus, boolean>> = {
Expand Down
5 changes: 5 additions & 0 deletions src/languages/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3300,6 +3300,11 @@ ${
confirmationStepHeader: 'Überprüfe deine Angaben.',
confirmationStepSubHeader: 'Prüfen Sie die untenstehenden Angaben sorgfältig und aktivieren Sie das Kontrollkästchen für die Bedingungen, um zu bestätigen.',
toGetStarted: 'Fügen Sie ein persönliches Bankkonto hinzu, um Erstattungen zu erhalten, Rechnungen zu bezahlen oder die Expensify Wallet zu aktivieren.',
updatePersonalInfo: 'Bankkonto aktualisieren',
updatePersonalInfoFailure: 'Die Bankkontoinformationen konnten nicht aktualisiert werden. Bitte versuchen Sie es später erneut.',
updateSuccessTitle: 'Bankkonto aktualisiert!',
updateSuccessHeader: 'Bankkonto aktualisiert',
updateSuccessMessage: 'Glückwunsch, dein Bankkonto ist eingerichtet und bereit, Rückerstattungen zu empfangen.',
},
addPersonalBankAccountPage: {
enterPassword: 'Expensify-Passwort eingeben',
Expand Down
5 changes: 5 additions & 0 deletions src/languages/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3344,6 +3344,11 @@ const translations = {
confirmationStepHeader: 'Check your info.',
confirmationStepSubHeader: 'Double check the details below, and check the terms box to confirm.',
toGetStarted: 'Add a personal bank account to receive reimbursements, pay invoices, or enable the Expensify Wallet.',
updatePersonalInfo: 'Update bank account',
updatePersonalInfoFailure: 'Unable to update bank account information. Please try again later.',
updateSuccessTitle: 'Bank account updated!',
updateSuccessHeader: 'Bank account updated',
updateSuccessMessage: 'Congrats, your bank account is set up and ready to receive reimbursements.',
},
addPersonalBankAccountPage: {
enterPassword: 'Enter Expensify password',
Expand Down
5 changes: 5 additions & 0 deletions src/languages/es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3214,6 +3214,11 @@ ${amount} para ${merchant} - ${date}`,
confirmationStepHeader: 'Verifica tu información.',
confirmationStepSubHeader: 'Verifica dos veces los detalles a continuación y marca la casilla de términos para confirmar.',
toGetStarted: 'Agrega una cuenta bancaria personal para recibir reembolsos, pagar facturas o habilitar la Cartera de Expensify.',
updatePersonalInfo: 'Actualizar cuenta bancaria',
updatePersonalInfoFailure: 'No se pudo actualizar la información de la cuenta bancaria. Por favor, inténtalo de nuevo más tarde.',
updateSuccessTitle: '¡Cuenta bancaria actualizada!',
updateSuccessHeader: 'Cuenta bancaria actualizada',
updateSuccessMessage: 'Enhorabuena, tu cuenta bancaria está configurada y lista para recibir reembolsos.',
},
addPersonalBankAccountPage: {
enterPassword: 'Escribe tu contraseña de Expensify',
Expand Down
5 changes: 5 additions & 0 deletions src/languages/fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3310,6 +3310,11 @@ ${
confirmationStepHeader: 'Vérifiez vos informations.',
confirmationStepSubHeader: 'Vérifiez attentivement les détails ci-dessous et cochez la case des conditions pour confirmer.',
toGetStarted: 'Ajoutez un compte bancaire personnel pour recevoir des remboursements, payer des factures ou activer le Portefeuille Expensify.',
updatePersonalInfo: 'Mettre à jour le compte bancaire',
updatePersonalInfoFailure: 'Impossible de mettre à jour les informations du compte bancaire. Veuillez réessayer plus tard.',
updateSuccessTitle: 'Compte bancaire mis à jour !',
updateSuccessHeader: 'Compte bancaire mis à jour',
updateSuccessMessage: 'Félicitations, votre compte bancaire est configuré et prêt à recevoir des remboursements.',
},
addPersonalBankAccountPage: {
enterPassword: 'Saisissez le mot de passe Expensify',
Expand Down
5 changes: 5 additions & 0 deletions src/languages/it.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3290,6 +3290,11 @@ ${
confirmationStepHeader: 'Controlla le tue informazioni.',
confirmationStepSubHeader: 'Controlla attentamente i dettagli qui sotto e seleziona la casella delle condizioni per confermare.',
toGetStarted: 'Aggiungi un conto bancario personale per ricevere rimborsi, pagare fatture o attivare l’Expensify Wallet.',
updatePersonalInfo: 'Aggiorna conto bancario',
updatePersonalInfoFailure: 'Impossibile aggiornare le informazioni del conto bancario. Riprova più tardi.',
updateSuccessTitle: 'Conto bancario aggiornato!',
updateSuccessHeader: 'Conto bancario aggiornato',
updateSuccessMessage: 'Complimenti, il tuo conto bancario è configurato e pronto a ricevere rimborsi.',
},
addPersonalBankAccountPage: {
enterPassword: 'Inserisci la password di Expensify',
Expand Down
5 changes: 5 additions & 0 deletions src/languages/ja.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3271,6 +3271,11 @@ ${
confirmationStepHeader: '情報を確認してください。',
confirmationStepSubHeader: '下記の詳細を再確認し、利用規約のチェックボックスをオンにして確定してください。',
toGetStarted: '個人の銀行口座を追加して、経費精算の受け取りや請求書の支払い、Expensifyウォレットの有効化を行いましょう。',
updatePersonalInfo: '銀行口座を更新',
updatePersonalInfoFailure: '銀行口座情報を更新できませんでした。後でもう一度お試しください。',
updateSuccessTitle: '銀行口座が更新されました!',
updateSuccessHeader: '銀行口座が更新されました',
updateSuccessMessage: 'おめでとうございます。銀行口座の設定が完了し、精算の受け取りができるようになりました。',
},
addPersonalBankAccountPage: {
enterPassword: 'Expensify のパスワードを入力',
Expand Down
5 changes: 5 additions & 0 deletions src/languages/nl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3287,6 +3287,11 @@ ${
confirmationStepHeader: 'Controleer je gegevens.',
confirmationStepSubHeader: 'Controleer de onderstaande gegevens goed en vink het vakje met de voorwaarden aan om te bevestigen.',
toGetStarted: 'Voeg een persoonlijke bankrekening toe om terugbetalingen te ontvangen, facturen te betalen of de Expensify Wallet in te schakelen.',
updatePersonalInfo: 'Bankrekening bijwerken',
updatePersonalInfoFailure: 'Kan de bankrekeninggegevens niet bijwerken. Probeer het later opnieuw.',
updateSuccessTitle: 'Bankrekening bijgewerkt!',
updateSuccessHeader: 'Bankrekening bijgewerkt',
updateSuccessMessage: 'Gefeliciteerd, je bankrekening is ingesteld en klaar om terugbetalingen te ontvangen.',
},
addPersonalBankAccountPage: {
enterPassword: 'Voer Expensify-wachtwoord in',
Expand Down
5 changes: 5 additions & 0 deletions src/languages/pl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3280,6 +3280,11 @@ ${
confirmationStepHeader: 'Sprawdź swoje dane.',
confirmationStepSubHeader: 'Sprawdź poniższe szczegóły i zaznacz pole z warunkami, aby potwierdzić.',
toGetStarted: 'Dodaj osobiste konto bankowe, aby otrzymywać zwroty wydatków, opłacać faktury lub włączyć Portfel Expensify.',
updatePersonalInfo: 'Aktualizuj konto bankowe',
updatePersonalInfoFailure: 'Nie można zaktualizować informacji o koncie bankowym. Spróbuj ponownie później.',
updateSuccessTitle: 'Konto bankowe zaktualizowane!',
updateSuccessHeader: 'Konto bankowe zaktualizowane',
updateSuccessMessage: 'Gratulacje, Twoje konto bankowe jest skonfigurowane i gotowe do przyjmowania zwrotów.',
},
addPersonalBankAccountPage: {
enterPassword: 'Wpisz hasło do Expensify',
Expand Down
5 changes: 5 additions & 0 deletions src/languages/pt-BR.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3279,6 +3279,11 @@ ${
confirmationStepHeader: 'Verifique suas informações.',
confirmationStepSubHeader: 'Verifique os detalhes abaixo e marque a caixa de termos para confirmar.',
toGetStarted: 'Adicione uma conta bancária pessoal para receber reembolsos, pagar faturas ou ativar a Carteira Expensify.',
updatePersonalInfo: 'Atualizar conta bancária',
updatePersonalInfoFailure: 'Não foi possível atualizar as informações da conta bancária. Por favor, tente novamente mais tarde.',
updateSuccessTitle: 'Conta bancária atualizada!',
updateSuccessHeader: 'Conta bancária atualizada',
updateSuccessMessage: 'Parabéns, sua conta bancária está configurada e pronta para receber reembolsos.',
},
addPersonalBankAccountPage: {
enterPassword: 'Insira a senha do Expensify',
Expand Down
5 changes: 5 additions & 0 deletions src/languages/zh-hans.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3223,6 +3223,11 @@ ${
confirmationStepHeader: '请检查您的信息。',
confirmationStepSubHeader: '请仔细核对以下详细信息,并勾选条款复选框以确认。',
toGetStarted: '添加个人银行账户以接收报销、支付发票或启用 Expensify 钱包。',
updatePersonalInfo: '更新银行账户',
updatePersonalInfoFailure: '无法更新银行账户信息。请稍后重试。',
updateSuccessTitle: '银行账户已更新!',
updateSuccessHeader: '银行账户已更新',
updateSuccessMessage: '恭喜,您的银行账户已设置完成,可以开始接收报销款了。',
},
addPersonalBankAccountPage: {
enterPassword: '输入 Expensify 密码',
Expand Down
12 changes: 12 additions & 0 deletions src/libs/API/parameters/UpdatePersonalBankAccountInfoParams.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
type UpdatePersonalBankAccountInfoParams = {
bankAccountID: number;
companyPhone: string;
legalFirstName: string;
legalLastName: string;
addressStreet: string;
addressCity: string;
addressState: string;
addressZip: string;
};

export default UpdatePersonalBankAccountInfoParams;
1 change: 1 addition & 0 deletions src/libs/API/parameters/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,7 @@ export type {default as FlagCommentParams} from './FlagCommentParams';
export type {default as UpdateReportPrivateNoteParams} from './UpdateReportPrivateNoteParams';
export type {default as UpdateCompanyInformationForBankAccountParams} from './UpdateCompanyInformationForBankAccountParams';
export type {default as UpdatePersonalDetailsForWalletParams} from './UpdatePersonalDetailsForWalletParams';
export type {default as UpdatePersonalBankAccountInfoParams} from './UpdatePersonalBankAccountInfoParams';
export type {default as VerifyIdentityParams} from './VerifyIdentityParams';
export type {default as AcceptWalletTermsParams} from './AcceptWalletTermsParams';
export type {default as ChronosRemoveOOOEventParams} from './ChronosRemoveOOOEventParams';
Expand Down
2 changes: 2 additions & 0 deletions src/libs/API/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@ const WRITE_COMMANDS = {
ADD_TEXT_AND_ATTACHMENT: 'AddTextAndAttachment',
CONNECT_BANK_ACCOUNT_WITH_PLAID: 'ConnectBankAccountWithPlaid',
ADD_PERSONAL_BANK_ACCOUNT: 'AddPersonalBankAccount',
UPDATE_PERSONAL_BANK_ACCOUNT_INFO: 'UpdatePersonalBankAccountInfo',
RESTART_BANK_ACCOUNT_SETUP: 'RestartBankAccountSetup',
RESEND_VALIDATE_CODE: 'ResendValidateCode',
READ_NEWEST_ACTION: 'ReadNewestAction',
Expand Down Expand Up @@ -671,6 +672,7 @@ type WriteCommandParameters = {
[WRITE_COMMANDS.ADD_TEXT_AND_ATTACHMENT]: Parameters.AddCommentOrAttachmentParams;
[WRITE_COMMANDS.CONNECT_BANK_ACCOUNT_WITH_PLAID]: Parameters.ConnectBankAccountParams;
[WRITE_COMMANDS.ADD_PERSONAL_BANK_ACCOUNT]: Parameters.AddPersonalBankAccountParams;
[WRITE_COMMANDS.UPDATE_PERSONAL_BANK_ACCOUNT_INFO]: Parameters.UpdatePersonalBankAccountInfoParams;
[WRITE_COMMANDS.RESTART_BANK_ACCOUNT_SETUP]: Parameters.RestartBankAccountSetupParams;
[WRITE_COMMANDS.RESEND_VALIDATE_CODE]: null;
[WRITE_COMMANDS.READ_NEWEST_ACTION]: Parameters.ReadNewestActionParams;
Expand Down
Loading
Loading