@@ -20,6 +20,7 @@ import useThemeIllustrations from '@hooks/useThemeIllustrations';
2020import useThemeStyles from '@hooks/useThemeStyles' ;
2121import { setAssignCardStepAndData } from '@libs/actions/CompanyCards' ;
2222import { getBankName , getCardFeedIcon , getCustomOrFormattedFeedName , getFilteredCardList , getPlaidInstitutionIconUrl , lastFourNumbersFromCardName , maskCardNumber } from '@libs/CardUtils' ;
23+ import Navigation from '@libs/Navigation/Navigation' ;
2324import { getPersonalDetailByEmail } from '@libs/PersonalDetailsUtils' ;
2425import tokenizedSearch from '@libs/tokenizedSearch' ;
2526import variables from '@styles/variables' ;
@@ -56,6 +57,27 @@ function CardSelectionStep({feed, policyID}: CardSelectionStepProps) {
5657 const [ cardSelected , setCardSelected ] = useState ( assignCard ?. data ?. encryptedCardNumber ?? '' ) ;
5758 const [ shouldShowError , setShouldShowError ] = useState ( false ) ;
5859
60+ const cardListOptions = Object . entries ( filteredCardList ) . map ( ( [ cardNumber , encryptedCardNumber ] ) => ( {
61+ keyForList : encryptedCardNumber ,
62+ value : encryptedCardNumber ,
63+ text : maskCardNumber ( cardNumber , feed ) ,
64+ alternateText : lastFourNumbersFromCardName ( cardNumber ) ,
65+ isSelected : cardSelected === encryptedCardNumber ,
66+ leftElement : plaidUrl ? (
67+ < PlaidCardFeedIcon
68+ plaidUrl = { plaidUrl }
69+ style = { styles . mr3 }
70+ />
71+ ) : (
72+ < Icon
73+ src = { getCardFeedIcon ( feed , illustrations ) }
74+ height = { variables . cardIconHeight }
75+ width = { variables . iconSizeExtraLarge }
76+ additionalStyles = { [ styles . mr3 , styles . cardIcon ] }
77+ />
78+ ) ,
79+ } ) ) ;
80+
5981 const handleBackButtonPress = ( ) => {
6082 if ( isEditing ) {
6183 setAssignCardStepAndData ( {
@@ -64,6 +86,10 @@ function CardSelectionStep({feed, policyID}: CardSelectionStepProps) {
6486 } ) ;
6587 return ;
6688 }
89+ if ( ! cardListOptions . length ) {
90+ Navigation . goBack ( ) ;
91+ return ;
92+ }
6793 setAssignCardStepAndData ( { currentStep : CONST . COMPANY_CARD . STEP . ASSIGNEE } ) ;
6894 } ;
6995
@@ -90,27 +116,6 @@ function CardSelectionStep({feed, policyID}: CardSelectionStepProps) {
90116 } ) ;
91117 } ;
92118
93- const cardListOptions = Object . entries ( filteredCardList ) . map ( ( [ cardNumber , encryptedCardNumber ] ) => ( {
94- keyForList : encryptedCardNumber ,
95- value : encryptedCardNumber ,
96- text : maskCardNumber ( cardNumber , feed ) ,
97- alternateText : lastFourNumbersFromCardName ( cardNumber ) ,
98- isSelected : cardSelected === encryptedCardNumber ,
99- leftElement : plaidUrl ? (
100- < PlaidCardFeedIcon
101- plaidUrl = { plaidUrl }
102- style = { styles . mr3 }
103- />
104- ) : (
105- < Icon
106- src = { getCardFeedIcon ( feed , illustrations ) }
107- height = { variables . cardIconHeight }
108- width = { variables . iconSizeExtraLarge }
109- additionalStyles = { [ styles . mr3 , styles . cardIcon ] }
110- />
111- ) ,
112- } ) ) ;
113-
114119 const searchedListOptions = useMemo ( ( ) => {
115120 return tokenizedSearch ( cardListOptions , searchText , ( option ) => [ option . text ] ) ;
116121 } , [ searchText , cardListOptions ] ) ;
0 commit comments