From 61b2d709976236738e0b455fe05c37bf98f24e1d Mon Sep 17 00:00:00 2001 From: Georgia Monahan Date: Tue, 17 Oct 2023 22:09:44 +0100 Subject: [PATCH 1/6] Filter out personal cards, fix route to card page. Handle edge case where user has multiple cards --- src/libs/CardUtils.ts | 7 ++++--- src/pages/settings/Wallet/PaymentMethodList.js | 13 +++++++++---- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/libs/CardUtils.ts b/src/libs/CardUtils.ts index c8ea03cc86c0..46aa70ba547e 100644 --- a/src/libs/CardUtils.ts +++ b/src/libs/CardUtils.ts @@ -4,6 +4,7 @@ import CONST from '../CONST'; import * as Localize from './Localize'; import * as OnyxTypes from '../types/onyx'; import ONYXKEYS, {OnyxValues} from '../ONYXKEYS'; +import _ from 'underscore'; let allCards: OnyxValues[typeof ONYXKEYS.CARD_LIST] = {}; Onyx.connect({ @@ -64,9 +65,9 @@ function getYearFromExpirationDateString(expirationDateString: string) { * @returns collection of assigned cards grouped by domain */ function getDomainCards(cardList: Record) { - // eslint-disable-next-line you-dont-need-lodash-underscore/filter - const activeCards = lodash.filter(cardList, (card) => (CONST.EXPENSIFY_CARD.ACTIVE_STATES as ReadonlyArray).includes(card.state)); - return lodash.groupBy(activeCards, (card) => card.domainName); + // Check for domainName to filter out personal credit cards. + const activeCards = _.filter(cardList, (card) => !!card.domainName && (CONST.EXPENSIFY_CARD.ACTIVE_STATES as ReadonlyArray).includes(card.state)); + return _.groupBy(activeCards, (card) => card.domainName); } /** diff --git a/src/pages/settings/Wallet/PaymentMethodList.js b/src/pages/settings/Wallet/PaymentMethodList.js index 2a533a784a62..2357c8b3e66e 100644 --- a/src/pages/settings/Wallet/PaymentMethodList.js +++ b/src/pages/settings/Wallet/PaymentMethodList.js @@ -201,18 +201,23 @@ function PaymentMethodList({ if (shouldShowAssignedCards) { const assignedCards = _.chain(cardList) - .filter((card) => CONST.EXPENSIFY_CARD.ACTIVE_STATES.includes(card.state)) - .sortBy((card) => (CardUtils.isExpensifyCard(card.cardID) ? 0 : 1)) + // Filter by physical, active cards associated with a domain + .filter((card) => !card.isVirtual && card.domainName && CONST.EXPENSIFY_CARD.ACTIVE_STATES.includes(card.state)) + .sortBy((card) => (!CardUtils.isExpensifyCard(card.cardID))) .value(); + const numberPhysicalExpensifyCards = _.filter(cardList, card => CardUtils.isExpensifyCard(card.cardID)).length; + return _.map(assignedCards, (card) => { const icon = getBankIcon(card.bank); const isExpensifyCard = CardUtils.isExpensifyCard(card.cardID); + // In the case a user has been assigned multiple physical Expensify Cards under one domain, display the Card with PAN + const expensifyCardDescription = numberPhysicalExpensifyCards > 1 ? CardUtils.getCardDescription(card.cardID) : translate('walletPage.expensifyCard'); return { key: card.cardID, - title: isExpensifyCard ? translate('walletPage.expensifyCard') : card.cardName, + title: isExpensifyCard ? expensifyCardDescription : card.cardName, description: card.domainName, - onPress: isExpensifyCard ? () => Navigation.navigate(ROUTES.SETTINGS_WALLET_DOMAINCARDS.getRoute(card.domainName)) : () => {}, + onPress: isExpensifyCard ? () => Navigation.navigate(ROUTES.SETTINGS_WALLET_DOMAINCARD.getRoute(card.domainName)) : () => {}, shouldShowRightIcon: isExpensifyCard, interactive: isExpensifyCard, canDismissError: isExpensifyCard, From 44c17a446cde53eac2225086daa6d56cd69fd3e6 Mon Sep 17 00:00:00 2001 From: Georgia Monahan Date: Wed, 18 Oct 2023 13:14:43 +0100 Subject: [PATCH 2/6] Add Card Assets, fix missing card status --- .../bankicons/american-express-card.svg | 25 ++ .../images/bankicons/bank-of-america-card.svg | 25 ++ assets/images/bankicons/bb-t-card.svg | 33 +++ assets/images/bankicons/capital-one-card.svg | 67 +++++ .../images/bankicons/charles-schwab-card.svg | 76 ++++++ assets/images/bankicons/chase-card.svg | 15 ++ assets/images/bankicons/citibank-card.svg | 22 ++ assets/images/bankicons/citizens-card.svg | 57 +++++ assets/images/bankicons/discover-card.svg | 53 ++++ .../images/bankicons/expensify-card-dark.svg | 78 ++++++ assets/images/bankicons/fidelity-card.svg | 21 ++ assets/images/bankicons/generic-bank-card.svg | 16 ++ .../images/bankicons/huntington-bank-card.svg | 26 ++ .../navy-federal-credit-union-card.svg | 105 ++++++++ assets/images/bankicons/pnc-card.svg | 18 ++ assets/images/bankicons/regions-bank-card.svg | 45 ++++ assets/images/bankicons/suntrust-card.svg | 237 ++++++++++++++++++ assets/images/bankicons/td-bank-card.svg | 17 ++ assets/images/bankicons/us-bank-card.svg | 32 +++ assets/images/bankicons/usaa-card.svg | 40 +++ src/CONST.ts | 1 + src/components/Icon/BankIcons.ts | 61 +++-- .../settings/Wallet/PaymentMethodList.js | 12 +- src/styles/styles.ts | 8 + src/styles/variables.ts | 2 + src/types/onyx/Card.ts | 4 +- 26 files changed, 1072 insertions(+), 24 deletions(-) create mode 100644 assets/images/bankicons/american-express-card.svg create mode 100644 assets/images/bankicons/bank-of-america-card.svg create mode 100644 assets/images/bankicons/bb-t-card.svg create mode 100644 assets/images/bankicons/capital-one-card.svg create mode 100644 assets/images/bankicons/charles-schwab-card.svg create mode 100644 assets/images/bankicons/chase-card.svg create mode 100644 assets/images/bankicons/citibank-card.svg create mode 100644 assets/images/bankicons/citizens-card.svg create mode 100644 assets/images/bankicons/discover-card.svg create mode 100644 assets/images/bankicons/expensify-card-dark.svg create mode 100644 assets/images/bankicons/fidelity-card.svg create mode 100644 assets/images/bankicons/generic-bank-card.svg create mode 100644 assets/images/bankicons/huntington-bank-card.svg create mode 100644 assets/images/bankicons/navy-federal-credit-union-card.svg create mode 100644 assets/images/bankicons/pnc-card.svg create mode 100644 assets/images/bankicons/regions-bank-card.svg create mode 100644 assets/images/bankicons/suntrust-card.svg create mode 100644 assets/images/bankicons/td-bank-card.svg create mode 100644 assets/images/bankicons/us-bank-card.svg create mode 100644 assets/images/bankicons/usaa-card.svg diff --git a/assets/images/bankicons/american-express-card.svg b/assets/images/bankicons/american-express-card.svg new file mode 100644 index 000000000000..9e31f7c8a08e --- /dev/null +++ b/assets/images/bankicons/american-express-card.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + diff --git a/assets/images/bankicons/bank-of-america-card.svg b/assets/images/bankicons/bank-of-america-card.svg new file mode 100644 index 000000000000..62dd510b0649 --- /dev/null +++ b/assets/images/bankicons/bank-of-america-card.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + diff --git a/assets/images/bankicons/bb-t-card.svg b/assets/images/bankicons/bb-t-card.svg new file mode 100644 index 000000000000..ad3676458d21 --- /dev/null +++ b/assets/images/bankicons/bb-t-card.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + diff --git a/assets/images/bankicons/capital-one-card.svg b/assets/images/bankicons/capital-one-card.svg new file mode 100644 index 000000000000..ee4f756e2600 --- /dev/null +++ b/assets/images/bankicons/capital-one-card.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/bankicons/charles-schwab-card.svg b/assets/images/bankicons/charles-schwab-card.svg new file mode 100644 index 000000000000..39c894042cd3 --- /dev/null +++ b/assets/images/bankicons/charles-schwab-card.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + diff --git a/assets/images/bankicons/chase-card.svg b/assets/images/bankicons/chase-card.svg new file mode 100644 index 000000000000..8e8ddb6d5378 --- /dev/null +++ b/assets/images/bankicons/chase-card.svg @@ -0,0 +1,15 @@ + + + + + + + + + diff --git a/assets/images/bankicons/citibank-card.svg b/assets/images/bankicons/citibank-card.svg new file mode 100644 index 000000000000..b9509cc7e37e --- /dev/null +++ b/assets/images/bankicons/citibank-card.svg @@ -0,0 +1,22 @@ + + + + + + + + + + diff --git a/assets/images/bankicons/citizens-card.svg b/assets/images/bankicons/citizens-card.svg new file mode 100644 index 000000000000..3b4bf9ea1af3 --- /dev/null +++ b/assets/images/bankicons/citizens-card.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/bankicons/discover-card.svg b/assets/images/bankicons/discover-card.svg new file mode 100644 index 000000000000..668e5634339d --- /dev/null +++ b/assets/images/bankicons/discover-card.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/bankicons/expensify-card-dark.svg b/assets/images/bankicons/expensify-card-dark.svg new file mode 100644 index 000000000000..4a65afeeda9d --- /dev/null +++ b/assets/images/bankicons/expensify-card-dark.svg @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/bankicons/fidelity-card.svg b/assets/images/bankicons/fidelity-card.svg new file mode 100644 index 000000000000..c87f9c4aa56c --- /dev/null +++ b/assets/images/bankicons/fidelity-card.svg @@ -0,0 +1,21 @@ + + + + + + + + + diff --git a/assets/images/bankicons/generic-bank-card.svg b/assets/images/bankicons/generic-bank-card.svg new file mode 100644 index 000000000000..e29006ba1077 --- /dev/null +++ b/assets/images/bankicons/generic-bank-card.svg @@ -0,0 +1,16 @@ + + + + + + + + + diff --git a/assets/images/bankicons/huntington-bank-card.svg b/assets/images/bankicons/huntington-bank-card.svg new file mode 100644 index 000000000000..c108c7039898 --- /dev/null +++ b/assets/images/bankicons/huntington-bank-card.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + diff --git a/assets/images/bankicons/navy-federal-credit-union-card.svg b/assets/images/bankicons/navy-federal-credit-union-card.svg new file mode 100644 index 000000000000..5abc1103cce1 --- /dev/null +++ b/assets/images/bankicons/navy-federal-credit-union-card.svg @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/bankicons/pnc-card.svg b/assets/images/bankicons/pnc-card.svg new file mode 100644 index 000000000000..ae4d4aac8e41 --- /dev/null +++ b/assets/images/bankicons/pnc-card.svg @@ -0,0 +1,18 @@ + + + + + + + + + diff --git a/assets/images/bankicons/regions-bank-card.svg b/assets/images/bankicons/regions-bank-card.svg new file mode 100644 index 000000000000..1837ad2be41b --- /dev/null +++ b/assets/images/bankicons/regions-bank-card.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/bankicons/suntrust-card.svg b/assets/images/bankicons/suntrust-card.svg new file mode 100644 index 000000000000..32ea5096f876 --- /dev/null +++ b/assets/images/bankicons/suntrust-card.svg @@ -0,0 +1,237 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/bankicons/td-bank-card.svg b/assets/images/bankicons/td-bank-card.svg new file mode 100644 index 000000000000..19988e35bbbe --- /dev/null +++ b/assets/images/bankicons/td-bank-card.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + diff --git a/assets/images/bankicons/us-bank-card.svg b/assets/images/bankicons/us-bank-card.svg new file mode 100644 index 000000000000..321b4cb755b0 --- /dev/null +++ b/assets/images/bankicons/us-bank-card.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + diff --git a/assets/images/bankicons/usaa-card.svg b/assets/images/bankicons/usaa-card.svg new file mode 100644 index 000000000000..bb634f64e658 --- /dev/null +++ b/assets/images/bankicons/usaa-card.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/CONST.ts b/src/CONST.ts index 70e9bd202e78..f0d1a9ed69ff 100755 --- a/src/CONST.ts +++ b/src/CONST.ts @@ -1240,6 +1240,7 @@ const CONST = { NONE: 'none', }, STATE: { + STATE_NOT_ISSUED: 2, OPEN: 3, NOT_ACTIVATED: 4, STATE_DEACTIVATED: 5, diff --git a/src/components/Icon/BankIcons.ts b/src/components/Icon/BankIcons.ts index 3118eec56a6d..9a0de0c1e628 100644 --- a/src/components/Icon/BankIcons.ts +++ b/src/components/Icon/BankIcons.ts @@ -19,6 +19,27 @@ import SunTrust from '../../../assets/images/bankicons/suntrust.svg'; import TdBank from '../../../assets/images/bankicons/td-bank.svg'; import USBank from '../../../assets/images/bankicons/us-bank.svg'; import USAA from '../../../assets/images/bankicons/usaa.svg'; +// Card Icons +import AmericanExpressCard from '../../../assets/images/bankicons/american-express-card.svg'; +import BankOfAmericaCard from '../../../assets/images/bankicons/bank-of-america-card.svg'; +import BB_TCard from '../../../assets/images/bankicons/bb-t-card.svg'; +import CapitalOneCard from '../../../assets/images/bankicons/capital-one-card.svg'; +import CharlesSchwabCard from '../../../assets/images/bankicons/charles-schwab-card.svg'; +import ChaseCard from '../../../assets/images/bankicons/chase-card.svg'; +import CitiBankCard from '../../../assets/images/bankicons/citibank-card.svg'; +import CitizensBankCard from '../../../assets/images/bankicons/citizens-card.svg'; +import DiscoverCard from '../../../assets/images/bankicons/discover-card.svg'; +import FidelityCard from '../../../assets/images/bankicons/fidelity-card.svg'; +import HuntingtonBankCard from '../../../assets/images/bankicons/huntington-bank-card.svg'; +import NavyFederalCreditUnionCard from '../../../assets/images/bankicons/navy-federal-credit-union-card.svg'; +import PNCCard from '../../../assets/images/bankicons/pnc-card.svg'; +import RegionsBankCard from '../../../assets/images/bankicons/regions-bank-card.svg'; +import SunTrustCard from '../../../assets/images/bankicons/suntrust-card.svg'; +import TdBankCard from '../../../assets/images/bankicons/td-bank-card.svg'; +import USBankCard from '../../../assets/images/bankicons/us-bank-card.svg'; +import USAACard from '../../../assets/images/bankicons/usaa-card.svg'; +import ExpensifyCardImage from '../../../assets/images/bankicons/expensify-card-dark.svg'; + import variables from '../../styles/variables'; type BankIcon = { @@ -31,76 +52,80 @@ type BankIcon = { */ function getAssetIcon(bankName: string, isCard: boolean): React.FC { + if (bankName.includes('expensify')) { + return ExpensifyCardImage; + } + if (bankName.includes('americanexpress')) { - return AmericanExpress; + return isCard ? AmericanExpressCard : AmericanExpress; } if (bankName.includes('bank of america') || bankName.includes('bankofamerica')) { - return BankOfAmerica; + return isCard ? BankOfAmericaCard : BankOfAmerica; } if (bankName.startsWith('bbt')) { - return BB_T; + return isCard ? BB_TCard : BB_T; } if (bankName.startsWith('capital one') || bankName.includes('capitalone')) { - return CapitalOne; + return isCard ? CapitalOneCard : CapitalOne; } if (bankName.startsWith('chase') || bankName.includes('chase')) { - return Chase; + return isCard ? ChaseCard : Chase; } if (bankName.includes('charles schwab') || bankName.includes('charlesschwab')) { - return CharlesSchwab; + return isCard ? CharlesSchwabCard : CharlesSchwab; } if (bankName.startsWith('citibank') || bankName.includes('citibank')) { - return CitiBank; + return isCard ? CitiBankCard : CitiBank; } if (bankName.startsWith('citizens bank') || bankName.includes('citizensbank')) { - return CitizensBank; + return isCard ? CitizensBankCard : CitizensBank; } if (bankName.startsWith('discover ') || bankName.includes('discover.') || bankName === 'discover') { - return Discover; + return isCard ? DiscoverCard : Discover; } if (bankName.startsWith('fidelity')) { - return Fidelity; + return isCard ? FidelityCard : Fidelity; } if (bankName.startsWith('huntington bank') || bankName.includes('huntingtonnational') || bankName.includes('huntington national')) { - return HuntingtonBank; + return isCard ? HuntingtonBankCard : HuntingtonBank; } if (bankName.startsWith('navy federal credit union') || bankName.includes('navy federal credit union')) { - return NavyFederalCreditUnion; + return isCard ? NavyFederalCreditUnionCard : NavyFederalCreditUnion; } if (bankName.startsWith('pnc') || bankName.includes('pnc')) { - return PNC; + return isCard ? PNCCard : PNC; } if (bankName.startsWith('regions bank') || bankName.includes('regionsbank')) { - return RegionsBank; + return isCard ? RegionsBankCard : RegionsBank; } if (bankName.startsWith('suntrust') || bankName.includes('suntrust')) { - return SunTrust; + return isCard ? SunTrustCard : SunTrust; } if (bankName.startsWith('td bank') || bankName.startsWith('tdbank') || bankName.includes('tdbank')) { - return TdBank; + return isCard ? TdBankCard : TdBank; } if (bankName.startsWith('us bank') || bankName.startsWith('usbank')) { - return USBank; + return isCard ? USBankCard : USBank; } if (bankName.includes('usaa')) { - return USAA; + return isCard ? USAACard : USAA; } return isCard ? Expensicons.CreditCard : GenericBank; diff --git a/src/pages/settings/Wallet/PaymentMethodList.js b/src/pages/settings/Wallet/PaymentMethodList.js index 2357c8b3e66e..24b3e36b6805 100644 --- a/src/pages/settings/Wallet/PaymentMethodList.js +++ b/src/pages/settings/Wallet/PaymentMethodList.js @@ -28,6 +28,7 @@ import ROUTES from '../../../ROUTES'; import getBankIcon from '../../../components/Icon/BankIcons'; import assignedCardPropTypes from './assignedCardPropTypes'; import * as CardUtils from '../../../libs/CardUtils'; +import variables from '../../../styles/variables'; const propTypes = { /** What to do when a menu item is pressed */ @@ -209,8 +210,12 @@ function PaymentMethodList({ const numberPhysicalExpensifyCards = _.filter(cardList, card => CardUtils.isExpensifyCard(card.cardID)).length; return _.map(assignedCards, (card) => { - const icon = getBankIcon(card.bank); const isExpensifyCard = CardUtils.isExpensifyCard(card.cardID); + const icon = getBankIcon(card.bank, true); + icon.iconHeight = variables.bankCardHeight; + icon.iconWidth = variables.bankCardWidth; + icon.iconStyles = [styles.assignedCardsIconContainer]; + // In the case a user has been assigned multiple physical Expensify Cards under one domain, display the Card with PAN const expensifyCardDescription = numberPhysicalExpensifyCards > 1 ? CardUtils.getCardDescription(card.cardID) : translate('walletPage.expensifyCard'); return { @@ -298,8 +303,9 @@ function PaymentMethodList({ icon={item.icon} disabled={item.disabled} iconFill={item.iconFill} - iconHeight={item.iconSize} - iconWidth={item.iconSize} + iconHeight={item.iconHeight || item.iconSize} + iconWidth={item.iconWidth || item.iconSize} + iconStyles={item.iconStyles} badgeText={shouldShowDefaultBadge(filteredPaymentMethods, item.isDefault) ? translate('paymentMethodList.defaultPaymentMethod') : null} wrapperStyle={styles.paymentMethod} shouldShowRightIcon={item.shouldShowRightIcon} diff --git a/src/styles/styles.ts b/src/styles/styles.ts index 7b61df8b936d..cc8ebde9bb88 100644 --- a/src/styles/styles.ts +++ b/src/styles/styles.ts @@ -3769,6 +3769,14 @@ const styles = (theme: ThemeDefault) => borderBottomColor: theme.border, }, + assignedCardsIconContainer: { + height: variables.bankCardHeight, + width: variables.bankCardWidth, + borderRadius: 4, + overflow: 'hidden', + alignSelf: 'center', + }, + moneyRequestHeaderStatusBarBadge: { paddingHorizontal: 8, borderRadius: variables.componentBorderRadiusSmall, diff --git a/src/styles/variables.ts b/src/styles/variables.ts index ea0af11d1b7a..b0d04ef68cc7 100644 --- a/src/styles/variables.ts +++ b/src/styles/variables.ts @@ -172,6 +172,8 @@ export default { reportActionImagesSingleImageHeight: 147, reportActionImagesDoubleImageHeight: 138, reportActionImagesMultipleImageHeight: 110, + bankCardWidth: 40, + bankCardHeight: 26, // The height of the empty list is 14px (2px for borders and 12px for vertical padding) // This is calculated based on the values specified in the 'getGoogleListViewStyle' function of the 'StyleUtils' utility diff --git a/src/types/onyx/Card.ts b/src/types/onyx/Card.ts index be9c31845acd..2e013957f56f 100644 --- a/src/types/onyx/Card.ts +++ b/src/types/onyx/Card.ts @@ -2,11 +2,9 @@ import {ValueOf} from 'type-fest'; import CONST from '../../CONST'; import * as OnyxCommon from './OnyxCommon'; -type State = 3 /* OPEN */ | 4 /* NOT_ACTIVATED */ | 5 /* STATE_DEACTIVATED */ | 6 /* CLOSED */ | 7 /* STATE_SUSPENDED */; - type Card = { cardID: number; - state: State; + state: ValueOf; bank: string; availableSpend: number; domainName: string; From 62b73b1e45ffc0de09dbe97aba1cd1b1385406b1 Mon Sep 17 00:00:00 2001 From: Georgia Monahan Date: Wed, 18 Oct 2023 14:39:07 +0100 Subject: [PATCH 3/6] lint --- src/libs/CardUtils.ts | 6 +++--- src/pages/settings/Wallet/PaymentMethodList.js | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/libs/CardUtils.ts b/src/libs/CardUtils.ts index 46aa70ba547e..87eca3e338b9 100644 --- a/src/libs/CardUtils.ts +++ b/src/libs/CardUtils.ts @@ -4,7 +4,6 @@ import CONST from '../CONST'; import * as Localize from './Localize'; import * as OnyxTypes from '../types/onyx'; import ONYXKEYS, {OnyxValues} from '../ONYXKEYS'; -import _ from 'underscore'; let allCards: OnyxValues[typeof ONYXKEYS.CARD_LIST] = {}; Onyx.connect({ @@ -66,8 +65,9 @@ function getYearFromExpirationDateString(expirationDateString: string) { */ function getDomainCards(cardList: Record) { // Check for domainName to filter out personal credit cards. - const activeCards = _.filter(cardList, (card) => !!card.domainName && (CONST.EXPENSIFY_CARD.ACTIVE_STATES as ReadonlyArray).includes(card.state)); - return _.groupBy(activeCards, (card) => card.domainName); + // eslint-disable-next-line you-dont-need-lodash-underscore/filter + const activeCards = lodash.filter(cardList, (card) => !!card.domainName && (CONST.EXPENSIFY_CARD.ACTIVE_STATES as ReadonlyArray).includes(card.state)); + return lodash.groupBy(activeCards, (card) => card.domainName); } /** diff --git a/src/pages/settings/Wallet/PaymentMethodList.js b/src/pages/settings/Wallet/PaymentMethodList.js index 24b3e36b6805..b6d6cd564a8b 100644 --- a/src/pages/settings/Wallet/PaymentMethodList.js +++ b/src/pages/settings/Wallet/PaymentMethodList.js @@ -204,10 +204,10 @@ function PaymentMethodList({ const assignedCards = _.chain(cardList) // Filter by physical, active cards associated with a domain .filter((card) => !card.isVirtual && card.domainName && CONST.EXPENSIFY_CARD.ACTIVE_STATES.includes(card.state)) - .sortBy((card) => (!CardUtils.isExpensifyCard(card.cardID))) + .sortBy((card) => !CardUtils.isExpensifyCard(card.cardID)) .value(); - const numberPhysicalExpensifyCards = _.filter(cardList, card => CardUtils.isExpensifyCard(card.cardID)).length; + const numberPhysicalExpensifyCards = _.filter(cardList, (card) => CardUtils.isExpensifyCard(card.cardID)).length; return _.map(assignedCards, (card) => { const isExpensifyCard = CardUtils.isExpensifyCard(card.cardID); From 6bd9f75d5bd084f4609f07d6c0c81084a8c28f6c Mon Sep 17 00:00:00 2001 From: Georgia Monahan Date: Wed, 18 Oct 2023 18:28:50 +0100 Subject: [PATCH 4/6] minor clean up --- .../bankicons/american-express-card.svg | 25 - assets/images/bankicons/american-express.svg | 61 +-- .../images/bankicons/bank-of-america-card.svg | 25 - assets/images/bankicons/bank-of-america.svg | 44 +- assets/images/bankicons/bb-t-card.svg | 33 -- assets/images/bankicons/bb-t.svg | 52 +-- assets/images/bankicons/capital-one-card.svg | 67 --- assets/images/bankicons/capital-one.svg | 108 +++-- .../images/bankicons/charles-schwab-card.svg | 76 --- assets/images/bankicons/charles-schwab.svg | 117 +++-- assets/images/bankicons/chase-card.svg | 15 - assets/images/bankicons/chase.svg | 25 +- assets/images/bankicons/citibank-card.svg | 22 - assets/images/bankicons/citibank.svg | 36 +- assets/images/bankicons/citizens-bank.svg | 96 ++-- assets/images/bankicons/citizens-card.svg | 57 --- assets/images/bankicons/discover-card.svg | 53 --- assets/images/bankicons/discover.svg | 48 +- .../images/bankicons/expensify-background.png | Bin 0 -> 32739 bytes .../images/bankicons/expensify-card-dark.svg | 78 ---- assets/images/bankicons/expensify.svg | 18 + assets/images/bankicons/fidelity-card.svg | 21 - assets/images/bankicons/fidelity.svg | 34 +- .../images/bankicons/generic-bank-account.svg | 14 +- assets/images/bankicons/generic-bank-card.svg | 16 - .../images/bankicons/huntington-bank-card.svg | 26 -- assets/images/bankicons/huntington-bank.svg | 46 +- .../navy-federal-credit-union-card.svg | 105 ----- .../bankicons/navy-federal-credit-union.svg | 174 ++++--- assets/images/bankicons/pnc-card.svg | 18 - assets/images/bankicons/pnc.svg | 36 +- assets/images/bankicons/regions-bank-card.svg | 45 -- assets/images/bankicons/regions-bank.svg | 78 ++-- assets/images/bankicons/suntrust-card.svg | 237 ---------- assets/images/bankicons/suntrust.svg | 437 +++++++++--------- assets/images/bankicons/td-bank-card.svg | 17 - assets/images/bankicons/td-bank.svg | 30 +- assets/images/bankicons/us-bank-card.svg | 32 -- assets/images/bankicons/us-bank.svg | 56 ++- assets/images/bankicons/usaa-card.svg | 40 -- assets/images/bankicons/usaa.svg | 74 ++- src/components/Icon/BankIcons.ts | 58 ++- src/libs/PaymentUtils.ts | 10 +- .../settings/Wallet/PaymentMethodList.js | 5 +- src/styles/styles.ts | 8 + src/types/onyx/PaymentMethod.ts | 5 + 46 files changed, 860 insertions(+), 1818 deletions(-) delete mode 100644 assets/images/bankicons/american-express-card.svg delete mode 100644 assets/images/bankicons/bank-of-america-card.svg delete mode 100644 assets/images/bankicons/bb-t-card.svg delete mode 100644 assets/images/bankicons/capital-one-card.svg delete mode 100644 assets/images/bankicons/charles-schwab-card.svg delete mode 100644 assets/images/bankicons/chase-card.svg delete mode 100644 assets/images/bankicons/citibank-card.svg delete mode 100644 assets/images/bankicons/citizens-card.svg delete mode 100644 assets/images/bankicons/discover-card.svg create mode 100644 assets/images/bankicons/expensify-background.png delete mode 100644 assets/images/bankicons/expensify-card-dark.svg create mode 100644 assets/images/bankicons/expensify.svg delete mode 100644 assets/images/bankicons/fidelity-card.svg delete mode 100644 assets/images/bankicons/generic-bank-card.svg delete mode 100644 assets/images/bankicons/huntington-bank-card.svg delete mode 100644 assets/images/bankicons/navy-federal-credit-union-card.svg delete mode 100644 assets/images/bankicons/pnc-card.svg delete mode 100644 assets/images/bankicons/regions-bank-card.svg delete mode 100644 assets/images/bankicons/suntrust-card.svg delete mode 100644 assets/images/bankicons/td-bank-card.svg delete mode 100644 assets/images/bankicons/us-bank-card.svg delete mode 100644 assets/images/bankicons/usaa-card.svg diff --git a/assets/images/bankicons/american-express-card.svg b/assets/images/bankicons/american-express-card.svg deleted file mode 100644 index 9e31f7c8a08e..000000000000 --- a/assets/images/bankicons/american-express-card.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - diff --git a/assets/images/bankicons/american-express.svg b/assets/images/bankicons/american-express.svg index b22ccbb4169a..0ab8383d46ed 100644 --- a/assets/images/bankicons/american-express.svg +++ b/assets/images/bankicons/american-express.svg @@ -1,38 +1,23 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/assets/images/bankicons/bank-of-america-card.svg b/assets/images/bankicons/bank-of-america-card.svg deleted file mode 100644 index 62dd510b0649..000000000000 --- a/assets/images/bankicons/bank-of-america-card.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - diff --git a/assets/images/bankicons/bank-of-america.svg b/assets/images/bankicons/bank-of-america.svg index 0d962a914cfd..e4f87be611fc 100644 --- a/assets/images/bankicons/bank-of-america.svg +++ b/assets/images/bankicons/bank-of-america.svg @@ -1,22 +1,22 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/assets/images/bankicons/bb-t-card.svg b/assets/images/bankicons/bb-t-card.svg deleted file mode 100644 index ad3676458d21..000000000000 --- a/assets/images/bankicons/bb-t-card.svg +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - diff --git a/assets/images/bankicons/bb-t.svg b/assets/images/bankicons/bb-t.svg index 13dba55f68f4..7e7bf1f29ee4 100644 --- a/assets/images/bankicons/bb-t.svg +++ b/assets/images/bankicons/bb-t.svg @@ -1,27 +1,25 @@ - - - - - - - - - - - + + + + + + + + + diff --git a/assets/images/bankicons/capital-one-card.svg b/assets/images/bankicons/capital-one-card.svg deleted file mode 100644 index ee4f756e2600..000000000000 --- a/assets/images/bankicons/capital-one-card.svg +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/assets/images/bankicons/capital-one.svg b/assets/images/bankicons/capital-one.svg index 116543884e52..c37c8e3ca582 100644 --- a/assets/images/bankicons/capital-one.svg +++ b/assets/images/bankicons/capital-one.svg @@ -1,55 +1,53 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/bankicons/charles-schwab-card.svg b/assets/images/bankicons/charles-schwab-card.svg deleted file mode 100644 index 39c894042cd3..000000000000 --- a/assets/images/bankicons/charles-schwab-card.svg +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/assets/images/bankicons/charles-schwab.svg b/assets/images/bankicons/charles-schwab.svg index 4ba4ca4f9488..181a668965da 100644 --- a/assets/images/bankicons/charles-schwab.svg +++ b/assets/images/bankicons/charles-schwab.svg @@ -1,59 +1,58 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/assets/images/bankicons/chase-card.svg b/assets/images/bankicons/chase-card.svg deleted file mode 100644 index 8e8ddb6d5378..000000000000 --- a/assets/images/bankicons/chase-card.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - diff --git a/assets/images/bankicons/chase.svg b/assets/images/bankicons/chase.svg index 1df546e9785b..70f0b911f147 100644 --- a/assets/images/bankicons/chase.svg +++ b/assets/images/bankicons/chase.svg @@ -1,12 +1,13 @@ - - - - - - - + + + + + + + diff --git a/assets/images/bankicons/citibank-card.svg b/assets/images/bankicons/citibank-card.svg deleted file mode 100644 index b9509cc7e37e..000000000000 --- a/assets/images/bankicons/citibank-card.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - diff --git a/assets/images/bankicons/citibank.svg b/assets/images/bankicons/citibank.svg index 482f33c8b9c9..b03e1efe9bb6 100644 --- a/assets/images/bankicons/citibank.svg +++ b/assets/images/bankicons/citibank.svg @@ -1,18 +1,18 @@ - - - - - - - - + + + + + + + + diff --git a/assets/images/bankicons/citizens-bank.svg b/assets/images/bankicons/citizens-bank.svg index 19160a747490..a0cdc6c1df2b 100644 --- a/assets/images/bankicons/citizens-bank.svg +++ b/assets/images/bankicons/citizens-bank.svg @@ -1,49 +1,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/bankicons/citizens-card.svg b/assets/images/bankicons/citizens-card.svg deleted file mode 100644 index 3b4bf9ea1af3..000000000000 --- a/assets/images/bankicons/citizens-card.svg +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/assets/images/bankicons/discover-card.svg b/assets/images/bankicons/discover-card.svg deleted file mode 100644 index 668e5634339d..000000000000 --- a/assets/images/bankicons/discover-card.svg +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/assets/images/bankicons/discover.svg b/assets/images/bankicons/discover.svg index 60396e16d29e..75db16e4d1c1 100644 --- a/assets/images/bankicons/discover.svg +++ b/assets/images/bankicons/discover.svg @@ -1 +1,47 @@ -Discover 4 \ No newline at end of file + + + + + + + + + + + + + + + + + + diff --git a/assets/images/bankicons/expensify-background.png b/assets/images/bankicons/expensify-background.png new file mode 100644 index 0000000000000000000000000000000000000000..ab7b71d34e111edea7d5ee0c5c86672689715437 GIT binary patch literal 32739 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 - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/assets/images/bankicons/expensify.svg b/assets/images/bankicons/expensify.svg new file mode 100644 index 000000000000..b61773e8d838 --- /dev/null +++ b/assets/images/bankicons/expensify.svg @@ -0,0 +1,18 @@ + + + + + + + + + diff --git a/assets/images/bankicons/fidelity-card.svg b/assets/images/bankicons/fidelity-card.svg deleted file mode 100644 index c87f9c4aa56c..000000000000 --- a/assets/images/bankicons/fidelity-card.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - diff --git a/assets/images/bankicons/fidelity.svg b/assets/images/bankicons/fidelity.svg index ac0a05babc95..d49eca17c12d 100644 --- a/assets/images/bankicons/fidelity.svg +++ b/assets/images/bankicons/fidelity.svg @@ -1,17 +1,17 @@ - - - - - - - + + + + + + + diff --git a/assets/images/bankicons/generic-bank-account.svg b/assets/images/bankicons/generic-bank-account.svg index 8912413c668d..493f06b335d8 100644 --- a/assets/images/bankicons/generic-bank-account.svg +++ b/assets/images/bankicons/generic-bank-account.svg @@ -1,14 +1,14 @@ - + - - + + diff --git a/assets/images/bankicons/generic-bank-card.svg b/assets/images/bankicons/generic-bank-card.svg deleted file mode 100644 index e29006ba1077..000000000000 --- a/assets/images/bankicons/generic-bank-card.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - diff --git a/assets/images/bankicons/huntington-bank-card.svg b/assets/images/bankicons/huntington-bank-card.svg deleted file mode 100644 index c108c7039898..000000000000 --- a/assets/images/bankicons/huntington-bank-card.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/assets/images/bankicons/huntington-bank.svg b/assets/images/bankicons/huntington-bank.svg index e6b43b78daaa..40909a273e19 100644 --- a/assets/images/bankicons/huntington-bank.svg +++ b/assets/images/bankicons/huntington-bank.svg @@ -1,24 +1,22 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/assets/images/bankicons/navy-federal-credit-union-card.svg b/assets/images/bankicons/navy-federal-credit-union-card.svg deleted file mode 100644 index 5abc1103cce1..000000000000 --- a/assets/images/bankicons/navy-federal-credit-union-card.svg +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/assets/images/bankicons/navy-federal-credit-union.svg b/assets/images/bankicons/navy-federal-credit-union.svg index 5541daa9f49a..898cd03768f0 100644 --- a/assets/images/bankicons/navy-federal-credit-union.svg +++ b/assets/images/bankicons/navy-federal-credit-union.svg @@ -1,89 +1,85 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/bankicons/pnc-card.svg b/assets/images/bankicons/pnc-card.svg deleted file mode 100644 index ae4d4aac8e41..000000000000 --- a/assets/images/bankicons/pnc-card.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - diff --git a/assets/images/bankicons/pnc.svg b/assets/images/bankicons/pnc.svg index 104abb28ba05..3f78dbe94f47 100644 --- a/assets/images/bankicons/pnc.svg +++ b/assets/images/bankicons/pnc.svg @@ -1,19 +1,17 @@ - - - - - - - - - - - + + + + + + + + + diff --git a/assets/images/bankicons/regions-bank-card.svg b/assets/images/bankicons/regions-bank-card.svg deleted file mode 100644 index 1837ad2be41b..000000000000 --- a/assets/images/bankicons/regions-bank-card.svg +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/assets/images/bankicons/regions-bank.svg b/assets/images/bankicons/regions-bank.svg index 2de53c116064..bff045f0eb5a 100644 --- a/assets/images/bankicons/regions-bank.svg +++ b/assets/images/bankicons/regions-bank.svg @@ -1,40 +1,38 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/bankicons/suntrust-card.svg b/assets/images/bankicons/suntrust-card.svg deleted file mode 100644 index 32ea5096f876..000000000000 --- a/assets/images/bankicons/suntrust-card.svg +++ /dev/null @@ -1,237 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/assets/images/bankicons/suntrust.svg b/assets/images/bankicons/suntrust.svg index 256b8157600f..b5b94c105b14 100644 --- a/assets/images/bankicons/suntrust.svg +++ b/assets/images/bankicons/suntrust.svg @@ -1,220 +1,217 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/bankicons/td-bank-card.svg b/assets/images/bankicons/td-bank-card.svg deleted file mode 100644 index 19988e35bbbe..000000000000 --- a/assets/images/bankicons/td-bank-card.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - diff --git a/assets/images/bankicons/td-bank.svg b/assets/images/bankicons/td-bank.svg index 03f100171f67..84675de5f2bf 100644 --- a/assets/images/bankicons/td-bank.svg +++ b/assets/images/bankicons/td-bank.svg @@ -1,16 +1,14 @@ - - - - - - - - - - - + + + + + + + + + diff --git a/assets/images/bankicons/us-bank-card.svg b/assets/images/bankicons/us-bank-card.svg deleted file mode 100644 index 321b4cb755b0..000000000000 --- a/assets/images/bankicons/us-bank-card.svg +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - diff --git a/assets/images/bankicons/us-bank.svg b/assets/images/bankicons/us-bank.svg index d1364e253e62..e091ba0a6f50 100644 --- a/assets/images/bankicons/us-bank.svg +++ b/assets/images/bankicons/us-bank.svg @@ -1,29 +1,27 @@ - - - - - - - - - - - - - + + + + + + + + + + + diff --git a/assets/images/bankicons/usaa-card.svg b/assets/images/bankicons/usaa-card.svg deleted file mode 100644 index bb634f64e658..000000000000 --- a/assets/images/bankicons/usaa-card.svg +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/assets/images/bankicons/usaa.svg b/assets/images/bankicons/usaa.svg index 2552db28eca3..1e137fab626f 100644 --- a/assets/images/bankicons/usaa.svg +++ b/assets/images/bankicons/usaa.svg @@ -1,38 +1,36 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + diff --git a/src/components/Icon/BankIcons.ts b/src/components/Icon/BankIcons.ts index 9a0de0c1e628..a30594d1ab3f 100644 --- a/src/components/Icon/BankIcons.ts +++ b/src/components/Icon/BankIcons.ts @@ -1,5 +1,6 @@ import {SvgProps} from 'react-native-svg'; -import * as Expensicons from './Expensicons'; +import {CSSProperties} from 'react'; +import {ViewStyle} from 'react-native'; import AmericanExpress from '../../../assets/images/bankicons/american-express.svg'; import BankOfAmerica from '../../../assets/images/bankicons/bank-of-america.svg'; import BB_T from '../../../assets/images/bankicons/bb-t.svg'; @@ -20,31 +21,35 @@ import TdBank from '../../../assets/images/bankicons/td-bank.svg'; import USBank from '../../../assets/images/bankicons/us-bank.svg'; import USAA from '../../../assets/images/bankicons/usaa.svg'; // Card Icons -import AmericanExpressCard from '../../../assets/images/bankicons/american-express-card.svg'; -import BankOfAmericaCard from '../../../assets/images/bankicons/bank-of-america-card.svg'; -import BB_TCard from '../../../assets/images/bankicons/bb-t-card.svg'; -import CapitalOneCard from '../../../assets/images/bankicons/capital-one-card.svg'; -import CharlesSchwabCard from '../../../assets/images/bankicons/charles-schwab-card.svg'; -import ChaseCard from '../../../assets/images/bankicons/chase-card.svg'; -import CitiBankCard from '../../../assets/images/bankicons/citibank-card.svg'; -import CitizensBankCard from '../../../assets/images/bankicons/citizens-card.svg'; -import DiscoverCard from '../../../assets/images/bankicons/discover-card.svg'; -import FidelityCard from '../../../assets/images/bankicons/fidelity-card.svg'; -import HuntingtonBankCard from '../../../assets/images/bankicons/huntington-bank-card.svg'; -import NavyFederalCreditUnionCard from '../../../assets/images/bankicons/navy-federal-credit-union-card.svg'; -import PNCCard from '../../../assets/images/bankicons/pnc-card.svg'; -import RegionsBankCard from '../../../assets/images/bankicons/regions-bank-card.svg'; -import SunTrustCard from '../../../assets/images/bankicons/suntrust-card.svg'; -import TdBankCard from '../../../assets/images/bankicons/td-bank-card.svg'; -import USBankCard from '../../../assets/images/bankicons/us-bank-card.svg'; -import USAACard from '../../../assets/images/bankicons/usaa-card.svg'; -import ExpensifyCardImage from '../../../assets/images/bankicons/expensify-card-dark.svg'; - +import AmericanExpressCard from '../../../assets/images/cardicons/american-express.svg'; +import BankOfAmericaCard from '../../../assets/images/cardicons/bank-of-america.svg'; +import BB_TCard from '../../../assets/images/cardicons/bb-t.svg'; +import CapitalOneCard from '../../../assets/images/cardicons/capital-one.svg'; +import CharlesSchwabCard from '../../../assets/images/cardicons/charles-schwab.svg'; +import ChaseCard from '../../../assets/images/cardicons/chase.svg'; +import CitiBankCard from '../../../assets/images/cardicons/citibank.svg'; +import CitizensBankCard from '../../../assets/images/cardicons/citizens.svg'; +import DiscoverCard from '../../../assets/images/cardicons/discover.svg'; +import FidelityCard from '../../../assets/images/cardicons/fidelity.svg'; +import HuntingtonBankCard from '../../../assets/images/cardicons/huntington-bank.svg'; +import GenericBankCard from '../../../assets/images/cardicons/generic-bank-card.svg'; +import NavyFederalCreditUnionCard from '../../../assets/images/cardicons/navy-federal-credit-union.svg'; +import PNCCard from '../../../assets/images/cardicons/pnc.svg'; +import RegionsBankCard from '../../../assets/images/cardicons/regions-bank.svg'; +import SunTrustCard from '../../../assets/images/cardicons/suntrust.svg'; +import TdBankCard from '../../../assets/images/cardicons/td-bank.svg'; +import USBankCard from '../../../assets/images/cardicons/us-bank.svg'; +import USAACard from '../../../assets/images/cardicons/usaa.svg'; +import ExpensifyCardImage from '../../../assets/images/cardicons/expensify-card-dark.svg'; +import styles from '../../styles/styles'; import variables from '../../styles/variables'; type BankIcon = { icon: React.FC; iconSize?: number; + iconHeight?: number; + iconWidth?: number; + iconStyles?: Array; }; /** @@ -128,7 +133,7 @@ function getAssetIcon(bankName: string, isCard: boolean): React.FC { return isCard ? USAACard : USAA; } - return isCard ? Expensicons.CreditCard : GenericBank; + return isCard ? GenericBankCard : GenericBank; } /** @@ -137,7 +142,7 @@ function getAssetIcon(bankName: string, isCard: boolean): React.FC { export default function getBankIcon(bankName: string, isCard = false): BankIcon { const bankIcon: BankIcon = { - icon: isCard ? Expensicons.CreditCard : GenericBank, + icon: isCard ? GenericBankCard : GenericBank, }; if (bankName) { @@ -145,8 +150,13 @@ export default function getBankIcon(bankName: string, isCard = false): BankIcon } // For default Credit Card icon the icon size should not be set. - if (![Expensicons.CreditCard].includes(bankIcon.icon)) { + if (!isCard) { bankIcon.iconSize = variables.iconSizeExtraLarge; + bankIcon.iconStyles = [styles.bankIconContainer]; + } else { + bankIcon.iconHeight = variables.bankCardHeight; + bankIcon.iconWidth = variables.bankCardWidth; + bankIcon.iconStyles = [styles.assignedCardsIconContainer]; } return bankIcon; diff --git a/src/libs/PaymentUtils.ts b/src/libs/PaymentUtils.ts index 7ea935577fb1..295394f37140 100644 --- a/src/libs/PaymentUtils.ts +++ b/src/libs/PaymentUtils.ts @@ -47,22 +47,28 @@ function formatPaymentMethods(bankAccountList: Record, fund return; } - const {icon, iconSize} = getBankIcon(bankAccount?.accountData?.additionalData?.bankName ?? '', false); + const {icon, iconSize, iconHeight, iconWidth, iconStyles} = getBankIcon(bankAccount?.accountData?.additionalData?.bankName ?? '', false); combinedPaymentMethods.push({ ...bankAccount, description: getPaymentMethodDescription(bankAccount?.accountType, bankAccount.accountData), icon, iconSize, + iconHeight, + iconWidth, + iconStyles, }); }); Object.values(fundList).forEach((card) => { - const {icon, iconSize} = getBankIcon(card?.accountData?.bank ?? '', true); + const {icon, iconSize, iconHeight, iconWidth, iconStyles} = getBankIcon(card?.accountData?.bank ?? '', true); combinedPaymentMethods.push({ ...card, description: getPaymentMethodDescription(card?.accountType, card.accountData), icon, iconSize, + iconHeight, + iconWidth, + iconStyles, }); }); diff --git a/src/pages/settings/Wallet/PaymentMethodList.js b/src/pages/settings/Wallet/PaymentMethodList.js index b6d6cd564a8b..2377868d724d 100644 --- a/src/pages/settings/Wallet/PaymentMethodList.js +++ b/src/pages/settings/Wallet/PaymentMethodList.js @@ -207,14 +207,11 @@ function PaymentMethodList({ .sortBy((card) => !CardUtils.isExpensifyCard(card.cardID)) .value(); - const numberPhysicalExpensifyCards = _.filter(cardList, (card) => CardUtils.isExpensifyCard(card.cardID)).length; + const numberPhysicalExpensifyCards = _.filter(assignedCards, (card) => CardUtils.isExpensifyCard(card.cardID)).length; return _.map(assignedCards, (card) => { const isExpensifyCard = CardUtils.isExpensifyCard(card.cardID); const icon = getBankIcon(card.bank, true); - icon.iconHeight = variables.bankCardHeight; - icon.iconWidth = variables.bankCardWidth; - icon.iconStyles = [styles.assignedCardsIconContainer]; // In the case a user has been assigned multiple physical Expensify Cards under one domain, display the Card with PAN const expensifyCardDescription = numberPhysicalExpensifyCards > 1 ? CardUtils.getCardDescription(card.cardID) : translate('walletPage.expensifyCard'); diff --git a/src/styles/styles.ts b/src/styles/styles.ts index 1723469fe937..f6d0b9210c0d 100644 --- a/src/styles/styles.ts +++ b/src/styles/styles.ts @@ -3778,6 +3778,14 @@ const styles = (theme: ThemeDefault) => alignSelf: 'center', }, + bankIconContainer: { + height: variables.bankCardWidth, + width: variables.bankCardWidth, + borderRadius: 8, + overflow: 'hidden', + alignSelf: 'center', + }, + moneyRequestHeaderStatusBarBadge: { paddingHorizontal: 8, borderRadius: variables.componentBorderRadiusSmall, diff --git a/src/types/onyx/PaymentMethod.ts b/src/types/onyx/PaymentMethod.ts index 773e6ff1197c..85f3655f49e8 100644 --- a/src/types/onyx/PaymentMethod.ts +++ b/src/types/onyx/PaymentMethod.ts @@ -1,4 +1,6 @@ import {SvgProps} from 'react-native-svg'; +import {CSSProperties} from 'react'; +import {ViewStyle} from 'react-native'; import BankAccount from './BankAccount'; import Fund from './Fund'; @@ -6,6 +8,9 @@ type PaymentMethod = (BankAccount | Fund) & { description: string; icon: React.FC; iconSize?: number; + iconHeight?: number; + iconWidth?: number; + iconStyles?: Array; }; export default PaymentMethod; From 903e982c1880ff30e075706704e02cfeafbbcb88 Mon Sep 17 00:00:00 2001 From: Georgia Monahan Date: Wed, 18 Oct 2023 18:35:17 +0100 Subject: [PATCH 5/6] I should probably upload the cardIcons shouldn't I? --- assets/images/cardicons/american-express.svg | 25 ++ assets/images/cardicons/bank-of-america.svg | 25 ++ assets/images/cardicons/bb-t.svg | 33 +++ assets/images/cardicons/capital-one.svg | 67 +++++ assets/images/cardicons/charles-schwab.svg | 76 ++++++ assets/images/cardicons/chase.svg | 15 ++ assets/images/cardicons/citibank.svg | 22 ++ assets/images/cardicons/citizens.svg | 57 +++++ assets/images/cardicons/discover.svg | 53 ++++ .../images/cardicons/expensify-card-dark.svg | 78 ++++++ assets/images/cardicons/fidelity.svg | 21 ++ assets/images/cardicons/generic-bank-card.svg | 14 ++ assets/images/cardicons/huntington-bank.svg | 26 ++ .../cardicons/navy-federal-credit-union.svg | 105 ++++++++ assets/images/cardicons/pnc.svg | 18 ++ assets/images/cardicons/regions-bank.svg | 45 ++++ assets/images/cardicons/suntrust.svg | 237 ++++++++++++++++++ assets/images/cardicons/td-bank.svg | 17 ++ assets/images/cardicons/us-bank.svg | 32 +++ assets/images/cardicons/usaa.svg | 40 +++ 20 files changed, 1006 insertions(+) create mode 100644 assets/images/cardicons/american-express.svg create mode 100644 assets/images/cardicons/bank-of-america.svg create mode 100644 assets/images/cardicons/bb-t.svg create mode 100644 assets/images/cardicons/capital-one.svg create mode 100644 assets/images/cardicons/charles-schwab.svg create mode 100644 assets/images/cardicons/chase.svg create mode 100644 assets/images/cardicons/citibank.svg create mode 100644 assets/images/cardicons/citizens.svg create mode 100644 assets/images/cardicons/discover.svg create mode 100644 assets/images/cardicons/expensify-card-dark.svg create mode 100644 assets/images/cardicons/fidelity.svg create mode 100644 assets/images/cardicons/generic-bank-card.svg create mode 100644 assets/images/cardicons/huntington-bank.svg create mode 100644 assets/images/cardicons/navy-federal-credit-union.svg create mode 100644 assets/images/cardicons/pnc.svg create mode 100644 assets/images/cardicons/regions-bank.svg create mode 100644 assets/images/cardicons/suntrust.svg create mode 100644 assets/images/cardicons/td-bank.svg create mode 100644 assets/images/cardicons/us-bank.svg create mode 100644 assets/images/cardicons/usaa.svg diff --git a/assets/images/cardicons/american-express.svg b/assets/images/cardicons/american-express.svg new file mode 100644 index 000000000000..9e31f7c8a08e --- /dev/null +++ b/assets/images/cardicons/american-express.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + diff --git a/assets/images/cardicons/bank-of-america.svg b/assets/images/cardicons/bank-of-america.svg new file mode 100644 index 000000000000..62dd510b0649 --- /dev/null +++ b/assets/images/cardicons/bank-of-america.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + diff --git a/assets/images/cardicons/bb-t.svg b/assets/images/cardicons/bb-t.svg new file mode 100644 index 000000000000..ad3676458d21 --- /dev/null +++ b/assets/images/cardicons/bb-t.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + diff --git a/assets/images/cardicons/capital-one.svg b/assets/images/cardicons/capital-one.svg new file mode 100644 index 000000000000..ee4f756e2600 --- /dev/null +++ b/assets/images/cardicons/capital-one.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/cardicons/charles-schwab.svg b/assets/images/cardicons/charles-schwab.svg new file mode 100644 index 000000000000..39c894042cd3 --- /dev/null +++ b/assets/images/cardicons/charles-schwab.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + diff --git a/assets/images/cardicons/chase.svg b/assets/images/cardicons/chase.svg new file mode 100644 index 000000000000..8e8ddb6d5378 --- /dev/null +++ b/assets/images/cardicons/chase.svg @@ -0,0 +1,15 @@ + + + + + + + + + diff --git a/assets/images/cardicons/citibank.svg b/assets/images/cardicons/citibank.svg new file mode 100644 index 000000000000..f9869aee7146 --- /dev/null +++ b/assets/images/cardicons/citibank.svg @@ -0,0 +1,22 @@ + + + + + + + + + + diff --git a/assets/images/cardicons/citizens.svg b/assets/images/cardicons/citizens.svg new file mode 100644 index 000000000000..3b4bf9ea1af3 --- /dev/null +++ b/assets/images/cardicons/citizens.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/cardicons/discover.svg b/assets/images/cardicons/discover.svg new file mode 100644 index 000000000000..668e5634339d --- /dev/null +++ b/assets/images/cardicons/discover.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/cardicons/expensify-card-dark.svg b/assets/images/cardicons/expensify-card-dark.svg new file mode 100644 index 000000000000..4a65afeeda9d --- /dev/null +++ b/assets/images/cardicons/expensify-card-dark.svg @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/cardicons/fidelity.svg b/assets/images/cardicons/fidelity.svg new file mode 100644 index 000000000000..c87f9c4aa56c --- /dev/null +++ b/assets/images/cardicons/fidelity.svg @@ -0,0 +1,21 @@ + + + + + + + + + diff --git a/assets/images/cardicons/generic-bank-card.svg b/assets/images/cardicons/generic-bank-card.svg new file mode 100644 index 000000000000..f700691ac29b --- /dev/null +++ b/assets/images/cardicons/generic-bank-card.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + diff --git a/assets/images/cardicons/huntington-bank.svg b/assets/images/cardicons/huntington-bank.svg new file mode 100644 index 000000000000..c108c7039898 --- /dev/null +++ b/assets/images/cardicons/huntington-bank.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + diff --git a/assets/images/cardicons/navy-federal-credit-union.svg b/assets/images/cardicons/navy-federal-credit-union.svg new file mode 100644 index 000000000000..5abc1103cce1 --- /dev/null +++ b/assets/images/cardicons/navy-federal-credit-union.svg @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/cardicons/pnc.svg b/assets/images/cardicons/pnc.svg new file mode 100644 index 000000000000..ae4d4aac8e41 --- /dev/null +++ b/assets/images/cardicons/pnc.svg @@ -0,0 +1,18 @@ + + + + + + + + + diff --git a/assets/images/cardicons/regions-bank.svg b/assets/images/cardicons/regions-bank.svg new file mode 100644 index 000000000000..1837ad2be41b --- /dev/null +++ b/assets/images/cardicons/regions-bank.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/cardicons/suntrust.svg b/assets/images/cardicons/suntrust.svg new file mode 100644 index 000000000000..32ea5096f876 --- /dev/null +++ b/assets/images/cardicons/suntrust.svg @@ -0,0 +1,237 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/cardicons/td-bank.svg b/assets/images/cardicons/td-bank.svg new file mode 100644 index 000000000000..19988e35bbbe --- /dev/null +++ b/assets/images/cardicons/td-bank.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + diff --git a/assets/images/cardicons/us-bank.svg b/assets/images/cardicons/us-bank.svg new file mode 100644 index 000000000000..321b4cb755b0 --- /dev/null +++ b/assets/images/cardicons/us-bank.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + diff --git a/assets/images/cardicons/usaa.svg b/assets/images/cardicons/usaa.svg new file mode 100644 index 000000000000..bb634f64e658 --- /dev/null +++ b/assets/images/cardicons/usaa.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + From 6332887c3f72911e760bf463a168f9220a7457f5 Mon Sep 17 00:00:00 2001 From: Georgia Monahan Date: Wed, 18 Oct 2023 20:26:04 +0100 Subject: [PATCH 6/6] remove unused import for lint --- src/pages/settings/Wallet/PaymentMethodList.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/pages/settings/Wallet/PaymentMethodList.js b/src/pages/settings/Wallet/PaymentMethodList.js index 2377868d724d..cd50d9701373 100644 --- a/src/pages/settings/Wallet/PaymentMethodList.js +++ b/src/pages/settings/Wallet/PaymentMethodList.js @@ -28,7 +28,6 @@ import ROUTES from '../../../ROUTES'; import getBankIcon from '../../../components/Icon/BankIcons'; import assignedCardPropTypes from './assignedCardPropTypes'; import * as CardUtils from '../../../libs/CardUtils'; -import variables from '../../../styles/variables'; const propTypes = { /** What to do when a menu item is pressed */