Skip to content

Commit 4d42e2b

Browse files
authored
Merge pull request Expensify#82799 from ShridharGoel/freezeCard5
[NoQA] Implement the frozen card indicator and the frozen-by text
2 parents 97db8ac + ba4c438 commit 4d42e2b

15 files changed

Lines changed: 169 additions & 26 deletions

File tree

assets/images/card-scarf.svg

Lines changed: 1 addition & 0 deletions
Loading

src/components/CardPreview.tsx

Lines changed: 49 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,24 @@
1+
import type {StyleProp, ViewStyle} from 'react-native';
12
import React from 'react';
23
import {View} from 'react-native';
34
import {useMemoizedLazyIllustrations} from '@hooks/useLazyAsset';
45
import useOnyx from '@hooks/useOnyx';
56
import useThemeStyles from '@hooks/useThemeStyles';
67
import variables from '@styles/variables';
78
import ONYXKEYS from '@src/ONYXKEYS';
9+
import type IconAsset from '@src/types/utils/IconAsset';
810
import ImageSVG from './ImageSVG';
911
import Text from './Text';
1012

11-
function CardPreview() {
13+
type CardPreviewProps = {
14+
/** Optional overlay image rendered on top of the card. */
15+
overlayImage?: IconAsset;
16+
17+
/** Styles for overlay container (absolute positioning, size, etc.). */
18+
overlayContainerStyle?: StyleProp<ViewStyle>;
19+
};
20+
21+
function CardPreview({overlayImage, overlayContainerStyle}: CardPreviewProps) {
1222
const styles = useThemeStyles();
1323
const lazyIllustrations = useMemoizedLazyIllustrations(['ExpensifyCardImage']);
1424

@@ -19,21 +29,44 @@ function CardPreview() {
1929
const cardHolder = legalFirstName && legalLastName ? `${legalFirstName} ${legalLastName}` : (session?.email ?? '');
2030

2131
return (
22-
<View style={styles.walletCard}>
23-
<ImageSVG
24-
contentFit="contain"
25-
src={lazyIllustrations.ExpensifyCardImage}
26-
pointerEvents="none"
27-
height={variables.cardPreviewHeight}
28-
width={variables.cardPreviewWidth}
29-
/>
30-
<Text
31-
style={styles.walletCardHolder}
32-
numberOfLines={1}
33-
ellipsizeMode="tail"
34-
>
35-
{cardHolder}
36-
</Text>
32+
<View
33+
style={[
34+
styles.pRelative,
35+
styles.alignSelfCenter,
36+
{
37+
width: variables.cardPreviewWidth,
38+
},
39+
]}
40+
>
41+
<View style={styles.walletCard}>
42+
<ImageSVG
43+
contentFit="contain"
44+
src={lazyIllustrations.ExpensifyCardImage}
45+
pointerEvents="none"
46+
height={variables.cardPreviewHeight}
47+
width={variables.cardPreviewWidth}
48+
/>
49+
<Text
50+
style={styles.walletCardHolder}
51+
numberOfLines={1}
52+
ellipsizeMode="tail"
53+
>
54+
{cardHolder}
55+
</Text>
56+
</View>
57+
{!!overlayImage && (
58+
<View
59+
pointerEvents="none"
60+
style={[styles.pAbsolute, overlayContainerStyle]}
61+
>
62+
<ImageSVG
63+
src={overlayImage}
64+
contentFit="contain"
65+
width="100%"
66+
height="100%"
67+
/>
68+
</View>
69+
)}
3770
</View>
3871
);
3972
}

src/languages/de.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2218,6 +2218,8 @@ ${amount} für ${merchant} – ${date}`,
22182218
freezeDescription: 'Eine gesperrte Karte kann nicht für Käufe und Transaktionen verwendet werden. Du kannst sie jederzeit entsperren.',
22192219
unfreezeDescription:
22202220
'Durch das Entsperren dieser Karte werden Käufe und Transaktionen wieder zugelassen. Fahre nur fort, wenn du sicher bist, dass die Karte sicher verwendet werden kann.',
2221+
youFroze: ({date}: {date: string}) => `Du hast diese Karte am ${date} gesperrt.`,
2222+
frozenBy: ({person, date}: {person: string; date: string}) => `${person} hat diese Karte am ${date} gesperrt.`,
22212223
},
22222224
workflowsPage: {
22232225
workflowTitle: 'Ausgaben',

src/languages/en.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2230,6 +2230,8 @@ const translations = {
22302230
unfreezeCard: 'Unfreeze card',
22312231
freezeDescription: 'A frozen card cannot be used for purchases and transactions. You can unfreeze it at any time.',
22322232
unfreezeDescription: "Unfreezing this card will start allowing purchases and transactions again. Only proceed if you're sure the card is safe to use.",
2233+
youFroze: ({date}: {date: string}) => `You froze this card on ${date}.`,
2234+
frozenBy: ({person, date}: {person: string; date: string}) => `${person} froze this card on ${date}.`,
22332235
},
22342236
workflowsPage: {
22352237
workflowTitle: 'Spend',

src/languages/es.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2052,6 +2052,8 @@ ${amount} para ${merchant} - ${date}`,
20522052
unfreezeCard: 'Descongelar tarjeta',
20532053
freezeDescription: 'Una tarjeta congelada no se puede usar para compras ni transacciones. Puedes descongelarla en cualquier momento.',
20542054
unfreezeDescription: 'Al descongelar esta tarjeta se volverán a permitir compras y transacciones. Continúa solo si estás seguro de que la tarjeta es segura para usar.',
2055+
youFroze: ({date}: {date: string}) => `Congelaste esta tarjeta el ${date}.`,
2056+
frozenBy: ({person, date}: {person: string; date: string}) => `${person} congeló esta tarjeta el ${date}.`,
20552057
},
20562058
workflowsPage: {
20572059
workflowTitle: 'Gasto',

src/languages/fr.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2223,6 +2223,8 @@ ${amount} pour ${merchant} - ${date}`,
22232223
freezeDescription: 'Une carte gelée ne peut pas être utilisée pour des achats ni des transactions. Vous pouvez la dégeler à tout moment.',
22242224
unfreezeDescription:
22252225
'Dégeler cette carte permettra à nouveau les achats et les transactions. Continuez uniquement si vous êtes sûr(e) que la carte peut être utilisée en toute sécurité.',
2226+
youFroze: ({date}: {date: string}) => `Vous avez gelé cette carte le ${date}.`,
2227+
frozenBy: ({person, date}: {person: string; date: string}) => `${person} a gelé cette carte le ${date}.`,
22262228
},
22272229
workflowsPage: {
22282230
workflowTitle: 'Dépense',

src/languages/it.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2212,6 +2212,8 @@ ${amount} per ${merchant} - ${date}`,
22122212
unfreezeCard: 'Sblocca carta',
22132213
freezeDescription: 'Una carta bloccata non può essere usata per acquisti e transazioni. Puoi sbloccarla in qualsiasi momento.',
22142214
unfreezeDescription: 'Sbloccando questa carta torneranno ad essere consentiti acquisti e transazioni. Procedi solo se sei sicuro che la carta sia sicura da usare.',
2215+
youFroze: ({date}: {date: string}) => `Hai bloccato questa carta il ${date}.`,
2216+
frozenBy: ({person, date}: {person: string; date: string}) => `${person} ha bloccato questa carta il ${date}.`,
22152217
},
22162218
workflowsPage: {
22172219
workflowTitle: 'Spesa',

src/languages/ja.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2198,6 +2198,8 @@ ${date} の ${merchant} への ${amount}`,
21982198
unfreezeCard: 'カードの一時停止を解除',
21992199
freezeDescription: '一時停止したカードは購入や取引に使用できません。いつでも再開できます。',
22002200
unfreezeDescription: 'このカードの一時停止を解除すると、購入と取引が再び可能になります。カードが安全に使用できると確信できる場合にのみ続行してください。',
2201+
youFroze: ({date}: {date: string}) => `${date}にこのカードを一時停止しました。`,
2202+
frozenBy: ({person, date}: {person: string; date: string}) => `${person}が${date}にこのカードを一時停止しました。`,
22012203
},
22022204
workflowsPage: {
22032205
workflowTitle: '支出',

src/languages/nl.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2212,6 +2212,8 @@ ${amount} voor ${merchant} - ${date}`,
22122212
unfreezeCard: 'Kaart deblokkeren',
22132213
freezeDescription: 'Een geblokkeerde kaart kan niet worden gebruikt voor aankopen en transacties. Je kunt deze op elk moment deblokkeren.',
22142214
unfreezeDescription: 'Door deze kaart te deblokkeren worden aankopen en transacties weer toegestaan. Ga alleen verder als je zeker weet dat de kaart veilig is om te gebruiken.',
2215+
youFroze: ({date}: {date: string}) => `Je hebt deze kaart op ${date} geblokkeerd.`,
2216+
frozenBy: ({person, date}: {person: string; date: string}) => `${person} heeft deze kaart op ${date} geblokkeerd.`,
22152217
},
22162218
workflowsPage: {
22172219
workflowTitle: 'Uitgaven',

src/languages/pl.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2206,6 +2206,8 @@ ${amount} dla ${merchant} - ${date}`,
22062206
unfreezeCard: 'Odmroź kartę',
22072207
freezeDescription: 'Zamrożonej karty nie można używać do zakupów i transakcji. Możesz ją odmrozić w dowolnym momencie.',
22082208
unfreezeDescription: 'Odmrożenie tej karty ponownie umożliwi zakupy i transakcje. Kontynuuj tylko wtedy, gdy masz pewność, że korzystanie z karty jest bezpieczne.',
2209+
youFroze: ({date}: {date: string}) => `Zamroziłeś tę kartę ${date}.`,
2210+
frozenBy: ({person, date}: {person: string; date: string}) => `${person} zamroził(a) tę kartę ${date}.`,
22092211
},
22102212
workflowsPage: {
22112213
workflowTitle: 'Wydatki',

0 commit comments

Comments
 (0)