1- import React from 'react' ;
1+ import React , { useEffect , useRef } from 'react' ;
22import InteractiveStepWrapper from '@components/InteractiveStepWrapper' ;
33import useLocalize from '@hooks/useLocalize' ;
44import useOnyx from '@hooks/useOnyx' ;
55import useSubStep from '@hooks/useSubStep' ;
66import type { SubStepProps } from '@hooks/useSubStep/types' ;
7+ import { getLatestErrorMessage } from '@libs/ErrorUtils' ;
78import { formatE164PhoneNumber } from '@libs/LoginUtils' ;
89import Navigation from '@navigation/Navigation' ;
910import { addPersonalBankAccount } from '@userActions/BankAccounts' ;
@@ -21,12 +22,18 @@ const bodyContentInfoSet: Array<React.ComponentType<SubStepProps>> = [LegalName,
2122const bodyContentWithPlaid : Array < React . ComponentType < SubStepProps > > = [ PlaidBankAccount , ...bodyContentInfoSet ] ;
2223const bodyContentWithManualSetup : Array < React . ComponentType < SubStepProps > > = [ ManualBankAccountDetails , ...bodyContentInfoSet ] ;
2324
25+ const DEFAULT_OBJECT = { } ;
26+ const ACCOUNT_OWNERSHIP_ERROR_SUBSTRING = 'account ownership' ;
27+
2428function PersonalInfoPage ( ) {
2529 const { translate} = useLocalize ( ) ;
2630
2731 const [ privatePersonalDetails ] = useOnyx ( ONYXKEYS . PRIVATE_PERSONAL_DETAILS ) ;
2832 const [ personalBankAccount ] = useOnyx ( ONYXKEYS . FORMS . PERSONAL_BANK_ACCOUNT_FORM_DRAFT ) ;
33+ const [ fullPersonalBankAccount ] = useOnyx ( ONYXKEYS . PERSONAL_BANK_ACCOUNT ) ;
2934 const isManual = personalBankAccount ?. setupType === CONST . BANK_ACCOUNT . SETUP_TYPE . MANUAL ;
35+ const error = getLatestErrorMessage ( fullPersonalBankAccount ?? DEFAULT_OBJECT ) ;
36+ const confirmedOwnershipDetails = useRef ( false ) ;
3037 const [ countryCode = CONST . DEFAULT_COUNTRY_CODE ] = useOnyx ( ONYXKEYS . COUNTRY_CODE ) ;
3138 const [ personalPolicyID ] = useOnyx ( ONYXKEYS . PERSONAL_POLICY_ID ) ;
3239
@@ -49,6 +56,9 @@ function PersonalInfoPage() {
4956 ...bankAccountWithToken ,
5057 phoneNumber : formatE164PhoneNumber ( finalPhoneNumber , countryCode ) ,
5158 } ;
59+ if ( confirmedOwnershipDetails . current ) {
60+ accountData . confirmedOwnershipDetails = true ;
61+ }
5262 addPersonalBankAccount ( accountData , personalPolicyID ) ;
5363 } ;
5464
@@ -62,6 +72,7 @@ function PersonalInfoPage() {
6272 moveTo,
6373 screenIndex,
6474 goToTheLastStep,
75+ // eslint-disable-next-line @typescript-eslint/no-deprecated
6576 } = useSubStep ( {
6677 bodyContent : isManual ? bodyContentWithManualSetup : bodyContentWithPlaid ,
6778 skipSteps,
@@ -80,6 +91,18 @@ function PersonalInfoPage() {
8091 prevScreen ( ) ;
8192 } ;
8293
94+ useEffect ( ( ) => {
95+ if ( ! error ) {
96+ return ;
97+ }
98+ if ( error . includes ( ACCOUNT_OWNERSHIP_ERROR_SUBSTRING ) ) {
99+ confirmedOwnershipDetails . current = true ;
100+ }
101+ return ( ) => {
102+ confirmedOwnershipDetails . current = false ;
103+ } ;
104+ } , [ error ] ) ;
105+
83106 return (
84107 < InteractiveStepWrapper
85108 wrapperID = { PersonalInfoPage . displayName }
0 commit comments