Skip to content

Commit 0aec7c0

Browse files
authored
Merge pull request #10198 from msalcala11/uk-gift-cards
UK Gift Cards
2 parents 685fdea + f58a423 commit 0aec7c0

File tree

6 files changed

+36
-13
lines changed

6 files changed

+36
-13
lines changed
86.2 KB
Loading
File renamed without changes.

src/pages/integrations/gift-cards/card-catalog/card-catalog.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { BuyCardPage } from '../buy-card/buy-card';
66
import { TranslateService } from '@ngx-translate/core';
77
import { ActionSheetProvider, PlatformProvider } from '../../../../providers';
88
import {
9+
getDisplayNameSortValue,
910
GiftCardProvider,
1011
hasVisibleDiscount
1112
} from '../../../../providers/gift-card/gift-card';
@@ -46,7 +47,7 @@ export class CardCatalogPage extends WideHeaderPage {
4647
.getAvailableCards()
4748
.then(allCards => {
4849
this.cardConfigMap = allCards
49-
.sort((a, b) => (a.featured && !b.featured ? -1 : 1))
50+
.sort(sortByFeaturedAndAlphabetically)
5051
.reduce(
5152
(map, cardConfig) => ({ ...map, [cardConfig.name]: cardConfig }),
5253
{}
@@ -126,3 +127,13 @@ export function isCardInSearchResults(c: CardConfig, search: string = '') {
126127
export function stripPunctuation(text: string) {
127128
return text.replace(/[^\w\s]|_/g, '');
128129
}
130+
131+
export function sortByFeaturedAndAlphabetically(a: CardConfig, b: CardConfig) {
132+
return getCatalogSortValue(a) > getCatalogSortValue(b) ? 1 : -1;
133+
}
134+
135+
export function getCatalogSortValue(cardConfig: CardConfig) {
136+
return `${cardConfig.featured ? 'a' : 'b'}${getDisplayNameSortValue(
137+
cardConfig.displayName
138+
)}`;
139+
}

src/pages/integrations/gift-cards/home-gift-cards/home-gift-cards.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
</ion-list>
2424
<action-card *ngIf="!activeBrands?.length" (click)="buyGiftCards()" tappable>
2525
<div action-card-body>
26-
<img class="gift-card-brands" src="assets/img/gift-cards/gift-cards.png">
26+
<img class="gift-card-brands" src="assets/img/gift-cards/gift-cards-{{primaryCatalogCurrency}}.png">
2727
<div class="discount-wrapper">
2828
<div *ngIf="discountedCard" class="gift-card-featured-discount"
2929
(click)="$event.stopPropagation(); buyCard(discountedCard.name, 'Home Buy Gift Cards Discount Label')" tappable

src/pages/integrations/gift-cards/home-gift-cards/home-gift-cards.ts

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ export class HomeGiftCards implements OnInit {
5858
public appName: string;
5959
public discountedCard: CardConfig;
6060
public hideDiscount: boolean = false;
61+
public primaryCatalogCurrency: string = 'usd';
6162
public disableArchiveAnimation: boolean = true; // Removes flicker on iOS when returning to home tab
6263

6364
@Input('scrollArea')
@@ -77,17 +78,16 @@ export class HomeGiftCards implements OnInit {
7778
async ngOnInit() {
7879
this.appName = this.appProvider.info.userVisibleName;
7980
await this.initGiftCards();
80-
this.discountedCard = await this.getDiscountedCard();
81+
const availableCards = await this.giftCardProvider.getAvailableCards();
82+
this.primaryCatalogCurrency = getPrimaryCatalogCurrency(availableCards);
83+
this.discountedCard = availableCards.find(cardConfig =>
84+
hasVisibleDiscount(cardConfig)
85+
);
8186
this.hideDiscount = await this.persistenceProvider.getHideGiftCardDiscountItem();
8287
await timer(3000).toPromise();
8388
this.giftCardProvider.preloadImages();
8489
}
8590

86-
async getDiscountedCard(): Promise<CardConfig> {
87-
const availableCards = await this.giftCardProvider.getAvailableCards();
88-
return availableCards.find(cardConfig => hasVisibleDiscount(cardConfig));
89-
}
90-
9191
public buyGiftCards() {
9292
this.navCtrl.push(CardCatalogPage);
9393
}
@@ -219,4 +219,13 @@ export class HomeGiftCards implements OnInit {
219219
}
220220
}
221221

222+
export function getPrimaryCatalogCurrency(availableCards: CardConfig[]) {
223+
const homeLogoCollageSupportedCurrencies = ['usd', 'gbp'];
224+
const firstBrandCurrency =
225+
availableCards[0] && availableCards[0].currency.toLowerCase();
226+
return homeLogoCollageSupportedCurrencies.indexOf(firstBrandCurrency) > -1
227+
? firstBrandCurrency
228+
: 'usd';
229+
}
230+
222231
export const HOME_GIFT_CARD_COMPONENTS = [HomeGiftCards, GiftCardItem];

src/providers/gift-card/gift-card.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -660,14 +660,17 @@ export function sortByDisplayName(
660660
a: CardConfig | GiftCard,
661661
b: CardConfig | GiftCard
662662
) {
663-
const startsNumeric = value => /^[0-9]$/.test(value.charAt(0));
664-
const aName = a.displayName.toLowerCase();
665-
const bName = b.displayName.toLowerCase();
666-
const aSortValue = `${startsNumeric(aName) ? 'zzz' : ''}${aName}`;
667-
const bSortValue = `${startsNumeric(bName) ? 'zzz' : ''}${bName}`;
663+
const aSortValue = getDisplayNameSortValue(a.displayName);
664+
const bSortValue = getDisplayNameSortValue(b.displayName);
668665
return aSortValue > bSortValue ? 1 : -1;
669666
}
670667

668+
export function getDisplayNameSortValue(displayName: string) {
669+
const startsNumeric = value => /^[0-9]$/.test(value.charAt(0));
670+
const name = displayName.toLowerCase();
671+
return `${startsNumeric(name) ? 'zzz' : ''}${name}`;
672+
}
673+
671674
export function setNullableCardFields(card: GiftCard, cardConfig: CardConfig) {
672675
return {
673676
...card,

0 commit comments

Comments
 (0)