Skip to content

Commit

Permalink
Merge pull request #24637 from Expensify/georgia-ReplaceCardListWithF…
Browse files Browse the repository at this point in the history
…undList

[Step 3] Remove CARD_LIST key from NewDot
  • Loading branch information
grgia authored Aug 17, 2023
2 parents 2b52597 + f8895c6 commit 8d11238
Show file tree
Hide file tree
Showing 11 changed files with 36 additions and 100 deletions.
3 changes: 0 additions & 3 deletions src/ONYXKEYS.js
Original file line number Diff line number Diff line change
Expand Up @@ -157,9 +157,6 @@ export default {
BANK_ACCOUNT_LIST: 'bankAccountList',

// The user's credit cards
CARD_LIST: 'cardList',

// The user's credit cards (renamed from cardList)
FUND_LIST: 'fundList',

// The user's Expensify cards
Expand Down
11 changes: 2 additions & 9 deletions src/components/Indicator.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,7 @@ const propTypes = {
/** List of bank accounts */
bankAccountList: PropTypes.objectOf(bankAccountPropTypes),

/** List of cards */
cardList: PropTypes.objectOf(cardPropTypes),

/** List of cards */
/** List of user cards */
fundList: PropTypes.objectOf(cardPropTypes),

/** The user's wallet (coming from Onyx) */
Expand All @@ -59,7 +56,6 @@ const defaultProps = {
allPolicyMembers: {},
policies: {},
bankAccountList: {},
cardList: null,
fundList: null,
userWallet: {},
walletTerms: {},
Expand All @@ -72,7 +68,7 @@ function Indicator(props) {
const cleanPolicies = _.pick(props.policies, (policy) => policy);
const cleanAllPolicyMembers = _.pick(props.allPolicyMembers, (policyMembers) => policyMembers);

const paymentCardList = props.fundList || props.cardList || {};
const paymentCardList = props.fundList || {};

// All of the error & info-checking methods are put into an array. This is so that using _.some() will return
// early as soon as the first error / info condition is returned. This makes the checks very efficient since
Expand Down Expand Up @@ -116,9 +112,6 @@ export default withOnyx({
reimbursementAccount: {
key: ONYXKEYS.REIMBURSEMENT_ACCOUNT,
},
cardList: {
key: ONYXKEYS.CARD_LIST,
},
fundList: {
key: ONYXKEYS.FUND_LIST,
},
Expand Down
5 changes: 1 addition & 4 deletions src/components/KYCWall/BaseKYCWall.js
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ class KYCWall extends React.Component {
continue(event, iouPaymentType) {
this.setState({transferBalanceButton: event.nativeEvent.target});
const isExpenseReport = ReportUtils.isExpenseReport(this.props.iouReport);
const paymentCardList = this.props.fundList || this.props.cardList || {};
const paymentCardList = this.props.fundList || {};

// Check to see if user has a valid payment method on file and display the add payment popover if they don't
if (
Expand Down Expand Up @@ -161,9 +161,6 @@ export default withOnyx({
userWallet: {
key: ONYXKEYS.USER_WALLET,
},
cardList: {
key: ONYXKEYS.CARD_LIST,
},
fundList: {
key: ONYXKEYS.FUND_LIST,
},
Expand Down
6 changes: 1 addition & 5 deletions src/components/KYCWall/kycWallPropTypes.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,7 @@ const propTypes = {
/** When the button is opened via an IOU, ID for the chatReport that the IOU is linked to */
chatReportID: PropTypes.string,

/** List of cards */
cardList: PropTypes.objectOf(cardPropTypes),

/** List of cards */
/** List of user's cards */
fundList: PropTypes.objectOf(cardPropTypes),

/** List of bank accounts */
Expand All @@ -56,7 +53,6 @@ const defaultProps = {
isDisabled: false,
chatReportID: '',
bankAccountList: {},
cardList: null,
fundList: null,
chatReport: null,
reimbursementAccount: {},
Expand Down
12 changes: 6 additions & 6 deletions src/libs/PaymentUtils.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,18 @@ import * as Localize from './Localize';
/**
* Check to see if user has either a debit card or personal bank account added
*
* @param {Array} [cardList]
* @param {Array} [fundList]
* @param {Array} [bankAccountList]
* @returns {Boolean}
*/
function hasExpensifyPaymentMethod(cardList = [], bankAccountList = []) {
function hasExpensifyPaymentMethod(fundList = [], bankAccountList = []) {
const validBankAccount = _.some(bankAccountList, (bankAccountJSON) => {
const bankAccount = new BankAccount(bankAccountJSON);
return bankAccount.isDefaultCredit();
});

// Hide any billing cards that are not P2P debit cards for now because you cannot make them your default method, or delete them
const validDebitCard = _.some(cardList, (card) => lodashGet(card, 'accountData.additionalData.isP2PDebitCard', false));
const validDebitCard = _.some(fundList, (card) => lodashGet(card, 'accountData.additionalData.isP2PDebitCard', false));

return validBankAccount || validDebitCard;
}
Expand All @@ -46,11 +46,11 @@ function getPaymentMethodDescription(accountType, account) {
/**
* Get the PaymentMethods list
* @param {Array} bankAccountList
* @param {Array} cardList
* @param {Array} fundList
* @param {Object} [payPalMeData = null]
* @returns {Array<PaymentMethod>}
*/
function formatPaymentMethods(bankAccountList, cardList, payPalMeData = null) {
function formatPaymentMethods(bankAccountList, fundList, payPalMeData = null) {
const combinedPaymentMethods = [];

_.each(bankAccountList, (bankAccount) => {
Expand All @@ -70,7 +70,7 @@ function formatPaymentMethods(bankAccountList, cardList, payPalMeData = null) {
});
});

_.each(cardList, (card) => {
_.each(fundList, (card) => {
const {icon, iconSize} = getBankIcon(lodashGet(card, 'accountData.bank', ''), true);
combinedPaymentMethods.push({
...card,
Expand Down
22 changes: 10 additions & 12 deletions src/libs/actions/PaymentMethods.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,11 +70,10 @@ function openPaymentsPage() {
* @param {Object} previousPaymentMethod
* @param {Object} currentPaymentMethod
* @param {Boolean} isOptimisticData
* @param {string} paymentCardOnyxKey - to pass in the correct ONYX key while renaming cardList -> fundList
* @return {Array}
*
*/
function getMakeDefaultPaymentOnyxData(bankAccountID, fundID, previousPaymentMethod, currentPaymentMethod, isOptimisticData = true, paymentCardOnyxKey) {
function getMakeDefaultPaymentOnyxData(bankAccountID, fundID, previousPaymentMethod, currentPaymentMethod, isOptimisticData = true) {
const onyxData = [
{
onyxMethod: Onyx.METHOD.MERGE,
Expand All @@ -94,7 +93,7 @@ function getMakeDefaultPaymentOnyxData(bankAccountID, fundID, previousPaymentMet
if (previousPaymentMethod) {
onyxData.push({
onyxMethod: Onyx.METHOD.MERGE,
key: previousPaymentMethod.accountType === CONST.PAYMENT_METHODS.BANK_ACCOUNT ? ONYXKEYS.BANK_ACCOUNT_LIST : paymentCardOnyxKey,
key: previousPaymentMethod.accountType === CONST.PAYMENT_METHODS.BANK_ACCOUNT ? ONYXKEYS.BANK_ACCOUNT_LIST : ONYXKEYS.FUND_LIST,
value: {
[previousPaymentMethod.methodID]: {
isDefault: !isOptimisticData,
Expand All @@ -106,7 +105,7 @@ function getMakeDefaultPaymentOnyxData(bankAccountID, fundID, previousPaymentMet
if (currentPaymentMethod) {
onyxData.push({
onyxMethod: Onyx.METHOD.MERGE,
key: currentPaymentMethod.accountType === CONST.PAYMENT_METHODS.BANK_ACCOUNT ? ONYXKEYS.BANK_ACCOUNT_LIST : paymentCardOnyxKey,
key: currentPaymentMethod.accountType === CONST.PAYMENT_METHODS.BANK_ACCOUNT ? ONYXKEYS.BANK_ACCOUNT_LIST : ONYXKEYS.FUND_LIST,
value: {
[currentPaymentMethod.methodID]: {
isDefault: isOptimisticData,
Expand All @@ -125,19 +124,18 @@ function getMakeDefaultPaymentOnyxData(bankAccountID, fundID, previousPaymentMet
* @param {Number} fundID
* @param {Object} previousPaymentMethod
* @param {Object} currentPaymentMethod
* @param {string} paymentCardOnyxKey - pass in the correct ONYX key while renaming cardList -> fundList
*
*/
function makeDefaultPaymentMethod(bankAccountID, fundID, previousPaymentMethod, currentPaymentMethod, paymentCardOnyxKey) {
function makeDefaultPaymentMethod(bankAccountID, fundID, previousPaymentMethod, currentPaymentMethod) {
API.write(
'MakeDefaultPaymentMethod',
{
bankAccountID,
fundID,
},
{
optimisticData: getMakeDefaultPaymentOnyxData(bankAccountID, fundID, previousPaymentMethod, currentPaymentMethod, true, paymentCardOnyxKey),
failureData: getMakeDefaultPaymentOnyxData(bankAccountID, fundID, previousPaymentMethod, currentPaymentMethod, false, paymentCardOnyxKey),
optimisticData: getMakeDefaultPaymentOnyxData(bankAccountID, fundID, previousPaymentMethod, currentPaymentMethod, true, ONYXKEYS.FUND_LIST),
failureData: getMakeDefaultPaymentOnyxData(bankAccountID, fundID, previousPaymentMethod, currentPaymentMethod, false, ONYXKEYS.FUND_LIST),
},
);
}
Expand Down Expand Up @@ -280,11 +278,11 @@ function dismissSuccessfulTransferBalancePage() {
/**
* Looks through each payment method to see if there is an existing error
* @param {Object} bankList
* @param {Object} cardList
* @param {Object} fundList
* @returns {Boolean}
*/
function hasPaymentMethodError(bankList, cardList) {
const combinedPaymentMethods = {...bankList, ...cardList};
function hasPaymentMethodError(bankList, fundList) {
const combinedPaymentMethods = {...bankList, ...fundList};
return _.some(combinedPaymentMethods, (item) => !_.isEmpty(item.errors));
}

Expand Down Expand Up @@ -337,7 +335,7 @@ function deletePaymentCard(fundID) {
optimisticData: [
{
onyxMethod: Onyx.METHOD.MERGE,
key: `${ONYXKEYS.CARD_LIST}`,
key: `${ONYXKEYS.FUND_LIST}`,
value: {[fundID]: {pendingAction: CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE}},
},
],
Expand Down
12 changes: 2 additions & 10 deletions src/pages/settings/InitialSettingsPage.js
Original file line number Diff line number Diff line change
Expand Up @@ -80,10 +80,7 @@ const propTypes = {
/** List of bank accounts */
bankAccountList: PropTypes.objectOf(bankAccountPropTypes),

/** List of cards */
cardList: PropTypes.objectOf(cardPropTypes),

/** List of cards */
/** List of user's cards */
fundList: PropTypes.objectOf(cardPropTypes),

/** Bank account attached to free plan */
Expand Down Expand Up @@ -121,7 +118,6 @@ const defaultProps = {
betas: [],
walletTerms: {},
bankAccountList: {},
cardList: null,
fundList: null,
loginList: {},
allPolicyMembers: {},
Expand Down Expand Up @@ -184,7 +180,7 @@ function InitialSettingsPage(props) {
: null;
const profileBrickRoadIndicator = UserUtils.getLoginListBrickRoadIndicator(props.loginList);

const paymentCardList = props.fundList || props.cardList || {};
const paymentCardList = props.fundList || {};

return [
{
Expand Down Expand Up @@ -266,7 +262,6 @@ function InitialSettingsPage(props) {
}, [
props.allPolicyMembers,
props.bankAccountList,
props.cardList,
props.fundList,
props.loginList,
props.network.isOffline,
Expand Down Expand Up @@ -429,9 +424,6 @@ export default compose(
reimbursementAccount: {
key: ONYXKEYS.REIMBURSEMENT_ACCOUNT,
},
cardList: {
key: ONYXKEYS.CARD_LIST,
},
fundList: {
key: ONYXKEYS.FUND_LIST,
},
Expand Down
33 changes: 6 additions & 27 deletions src/pages/settings/Payments/PaymentMethodList.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,7 @@ const propTypes = {
/** List of bank accounts */
bankAccountList: PropTypes.objectOf(bankAccountPropTypes),

/** List of cards */
cardList: PropTypes.objectOf(cardPropTypes),

/** List of cards */
/** List of user's cards */
fundList: PropTypes.objectOf(cardPropTypes),

/** Whether the add Payment button be shown on the list */
Expand Down Expand Up @@ -82,7 +79,6 @@ const propTypes = {
const defaultProps = {
payPalMeData: {},
bankAccountList: {},
cardList: null,
fundList: null,
userWallet: {
walletLinkedAccountID: 0,
Expand All @@ -105,7 +101,7 @@ const defaultProps = {
*/
function dismissError(item) {
const isBankAccount = item.accountType === CONST.PAYMENT_METHODS.BANK_ACCOUNT;
const paymentList = isBankAccount ? ONYXKEYS.BANK_ACCOUNT_LIST : ONYXKEYS.CARD_LIST;
const paymentList = isBankAccount ? ONYXKEYS.BANK_ACCOUNT_LIST : ONYXKEYS.FUND_LIST;
const paymentID = isBankAccount ? lodashGet(item, ['accountData', 'bankAccountID'], '') : lodashGet(item, ['accountData', 'fundID'], '');

if (!paymentID) {
Expand All @@ -115,13 +111,11 @@ function dismissError(item) {

if (item.pendingAction === CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE) {
PaymentMethods.clearDeletePaymentMethodError(paymentList, paymentID);
// as part of migrating cardList to fundList key, we will duplicate the action with both keys temporarily.
if (!isBankAccount) {
PaymentMethods.clearDeletePaymentMethodError(ONYXKEYS.FUND_LIST, paymentID);
}
} else {
PaymentMethods.clearAddPaymentMethodError(paymentList, paymentID);
// as part of migrating cardList to fundList key, we will duplicate the action with both keys temporarily.
if (!isBankAccount) {
PaymentMethods.clearAddPaymentMethodError(ONYXKEYS.FUND_LIST, paymentID);
}
Expand Down Expand Up @@ -155,23 +149,11 @@ function isPaymentMethodActive(actionPaymentMethodType, activePaymentMethodID, p
return paymentMethod.accountType === actionPaymentMethodType && paymentMethod.methodID === activePaymentMethodID;
}
function PaymentMethodList(props) {
const {
actionPaymentMethodType,
activePaymentMethodID,
bankAccountList,
cardList,
fundList,
filterType,
network,
onPress,
payPalMeData,
shouldShowSelectedState,
selectedMethodID,
translate,
} = props;
const {actionPaymentMethodType, activePaymentMethodID, bankAccountList, fundList, filterType, network, onPress, payPalMeData, shouldShowSelectedState, selectedMethodID, translate} =
props;

const filteredPaymentMethods = useMemo(() => {
const paymentCardList = fundList || cardList || {};
const paymentCardList = fundList || {};
// Hide any billing cards that are not P2P debit cards for now because you cannot make them your default method, or delete them
const filteredCardList = _.filter(paymentCardList, (card) => card.accountData.additionalData.isP2PDebitCard);
let combinedPaymentMethods = PaymentUtils.formatPaymentMethods(bankAccountList, filteredCardList, payPalMeData);
Expand All @@ -198,7 +180,7 @@ function PaymentMethodList(props) {
}));

return combinedPaymentMethods;
}, [actionPaymentMethodType, activePaymentMethodID, bankAccountList, filterType, network, onPress, payPalMeData, cardList, fundList]);
}, [actionPaymentMethodType, activePaymentMethodID, bankAccountList, filterType, network, onPress, payPalMeData, fundList]);

/**
* Render placeholder when there are no payments methods
Expand Down Expand Up @@ -286,9 +268,6 @@ export default compose(
bankAccountList: {
key: ONYXKEYS.BANK_ACCOUNT_LIST,
},
cardList: {
key: ONYXKEYS.CARD_LIST,
},
fundList: {
key: ONYXKEYS.FUND_LIST,
},
Expand Down
Loading

0 comments on commit 8d11238

Please sign in to comment.