Skip to content
This repository was archived by the owner on Aug 6, 2021. It is now read-only.

Commit 4338e9b

Browse files
committed
Display inactive accounts, show updated card descriptions in filters
1 parent c4c632a commit 4338e9b

File tree

3 files changed

+40
-23
lines changed

3 files changed

+40
-23
lines changed

src/react/Components/FilterComponents/CardSelection.jsx

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import FilterListIcon from "@material-ui/icons/FilterList";
1717
import { cardsUpdate } from "../../Actions/cards";
1818
import { addCardIdFilter, removeCardIdFilter, toggleCardIdFilter } from "../../Actions/filters";
1919
import { getCardTypeImage } from "../../Pages/Cards/CardListItem";
20+
import { getCardDescription } from "../../Functions/Utils";
2021

2122
const styles = {
2223
listItem: {
@@ -100,12 +101,15 @@ class CardSelection extends React.Component {
100101
});
101102

102103
const cardMenuItems = Object.keys(cards)
103-
.filter(cardIndex => {
104-
const card = cards[cardIndex];
105-
if (card && card.status !== "ACTIVE") {
106-
return false;
107-
}
108-
return true;
104+
// put inactive cards at the bottom
105+
.sort((index1, index2) => {
106+
const card1 = cards[index1];
107+
const card2 = cards[index2];
108+
109+
if (card1.status !== "ACTIVE" && card2.status === "ACTIVE") return 1;
110+
if (card1.status === "ACTIVE" && card2.status !== "ACTIVE") return -1;
111+
112+
return 0;
109113
})
110114
.map((cardIndex, key) => {
111115
const card = cards[cardIndex];
@@ -114,14 +118,16 @@ class CardSelection extends React.Component {
114118
if (selectedCardIds.includes(card.id)) {
115119
return null;
116120
}
121+
122+
const cardDescription = getCardDescription(card);
117123
const { cardImage, cardType } = getCardTypeImage(card.type, card.cardType);
118124

119125
return (
120126
<MenuItem key={key} onClick={this.addCardId(card.id)}>
121127
<ListItemIcon style={styles.listItemIcon}>
122128
<img style={styles.listItemImg} src={cardImage} />
123129
</ListItemIcon>
124-
{card.second_line || cardType}
130+
{cardDescription || cardType}
125131
</MenuItem>
126132
);
127133
});

src/react/Functions/Utils.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,30 @@ export const humanReadableDate = (date, displayHoursMins = true, localization =
246246
return `${createDate.getDate()} ${month} ${hoursMinutes}`;
247247
};
248248

249+
export const getCardDescription = card => {
250+
let second_line = card.second_line;
251+
console.log(card, second_line);
252+
const primaryNumbers = card.primary_account_numbers;
253+
if (primaryNumbers && primaryNumbers.length > 0) {
254+
// if no status is set or status is ACTIVE use alternative second line
255+
const firstActivePrimaryNumber = primaryNumbers.find(primaryNumber => {
256+
if (!primaryNumber.status) return true;
257+
return primaryNumber.status === "ACTIVE";
258+
});
259+
260+
if (firstActivePrimaryNumber) {
261+
second_line = firstActivePrimaryNumber.description;
262+
}
263+
} else if (second_line.length === 0 && card.type === "MAESTRO_MOBILE_NFC") {
264+
second_line = "Apple Pay";
265+
}
266+
267+
console.log(card, second_line);
268+
console.log("");
269+
270+
return second_line || card.type;
271+
};
272+
249273
/**
250274
* Adds space every fourth character for IBAN numbers
251275
* @param iban

src/react/Pages/Cards/Cards.jsx

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import VirtualAccountNumbersDialog from "./VirtualAccountNumbersDialog";
2323
import TranslateTypography from "../../Components/TranslationHelpers/Typography";
2424
import AccountSelectorDialog from "../../Components/FormFields/AccountSelectorDialog";
2525

26+
import { getCardDescription } from "../../Functions/Utils";
2627
import { cardStatus, cardOrderStatus } from "../../Functions/EventStatusTexts";
2728
import { cardsUpdate, cardsSetCardOrder, cardsAssignAccounts } from "../../Actions/cards";
2829

@@ -290,21 +291,7 @@ class Cards extends React.Component {
290291
const translateOffset = selectedCardIndex * 410;
291292
const carouselTranslate = "translateY(-" + translateOffset + "px)";
292293

293-
let second_line = cardInfo.second_line;
294-
const primaryNumbers = cardInfo.primary_account_numbers;
295-
if (primaryNumbers && primaryNumbers.length > 0) {
296-
// if no status is set or status is ACTIVE use alternative second line
297-
const firstActivePrimaryNumber = primaryNumbers.find(primaryNumber => {
298-
if (!primaryNumber.status) return true;
299-
return primaryNumber.status === "ACTIVE";
300-
});
301-
302-
if (firstActivePrimaryNumber) {
303-
second_line = firstActivePrimaryNumber.description;
304-
}
305-
} else if (second_line.length === 0 && cardInfo.type === "MAESTRO_MOBILE_NFC") {
306-
second_line = "Apple Pay";
307-
}
294+
const cardDescription = getCardDescription(cardInfo);
308295

309296
const primaryAssignment = cardInfo.pin_code_assignment.find(assignment => {
310297
return assignment.type === "PRIMARY";
@@ -382,7 +369,7 @@ class Cards extends React.Component {
382369
<Grid container spacing={16}>
383370
<Grid item xs={12} sm={6}>
384371
<Typography variant="h6">{cardInfo.name_on_card}</Typography>
385-
<Typography variant="subtitle1">{second_line}</Typography>
372+
<Typography variant="subtitle1">{cardDescription}</Typography>
386373
</Grid>
387374
<Grid item xs={12} sm={6}>
388375
<Typography variant="body1" style={{ textAlign: "right" }}>

0 commit comments

Comments
 (0)