Skip to content

Commit 46bc6a7

Browse files
authored
Merge pull request #45703 from waterim/feat-44320-Create-Deactivate-card-logic
Feature: Create Deactivate card logic
2 parents b7a3deb + dbe6c2e commit 46bc6a7

File tree

3 files changed

+33
-2
lines changed

3 files changed

+33
-2
lines changed

src/languages/en.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2966,6 +2966,11 @@ export default {
29662966
limitType: 'Limit type',
29672967
name: 'Name',
29682968
},
2969+
deactivateCardModal: {
2970+
deactivate: 'Deactivate',
2971+
deactivateCard: 'Deactivate card',
2972+
deactivateConfirmation: 'Deactivating this card will decline all future transactions and can’t be undone.',
2973+
},
29692974
},
29702975
reimburse: {
29712976
captureReceipts: 'Capture receipts',

src/languages/es.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3218,6 +3218,11 @@ export default {
32183218
limitType: 'Tipo de limite',
32193219
name: 'Nombre',
32203220
},
3221+
deactivateCardModal: {
3222+
deactivate: 'Desactivar',
3223+
deactivateCard: 'Desactivar tarjeta',
3224+
deactivateConfirmation: 'Al desactivar esta tarjeta, se rechazarán todas las transacciones futuras y no se podrá deshacer.',
3225+
},
32213226
},
32223227
reimburse: {
32233228
captureReceipts: 'Captura recibos',

src/pages/workspace/expensifyCard/WorkspaceExpensifyCardDetailsPage.tsx

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import type {StackScreenProps} from '@react-navigation/stack';
2-
import React from 'react';
2+
import React, {useState} from 'react';
33
import {View} from 'react-native';
44
import {useOnyx} from 'react-native-onyx';
55
import ExpensifyCardImage from '@assets/images/expensify-card.svg';
66
import Badge from '@components/Badge';
7+
import ConfirmModal from '@components/ConfirmModal';
78
import HeaderWithBackButton from '@components/HeaderWithBackButton';
89
import {FallbackAvatar} from '@components/Icon/Expensicons';
910
import * as Expensicons from '@components/Icon/Expensicons';
@@ -45,6 +46,7 @@ type WorkspaceExpensifyCardDetailsPageProps = StackScreenProps<SettingsNavigator
4546
function WorkspaceExpensifyCardDetailsPage({route}: WorkspaceExpensifyCardDetailsPageProps) {
4647
const {policyID, cardID, backTo} = route.params;
4748

49+
const [isDeactivateModalVisible, setIsDeactivateModalVisible] = useState(false);
4850
const {translate} = useLocalize();
4951
const styles = useThemeStyles();
5052
const theme = useTheme();
@@ -60,6 +62,14 @@ function WorkspaceExpensifyCardDetailsPage({route}: WorkspaceExpensifyCardDetail
6062
const displayName = PersonalDetailsUtils.getDisplayNameOrDefault(cardholder);
6163
const translationForLimitType = CardUtils.getTranslationKeyForLimitType(card.nameValuePairs?.limitType);
6264

65+
const deactivateCard = () => {
66+
setIsDeactivateModalVisible(false);
67+
68+
// TODO: add API call when it's supported https://github.com/Expensify/Expensify/issues/407841
69+
70+
Navigation.goBack();
71+
};
72+
6373
return (
6474
<AccessOrNotFoundWrapper
6575
accessVariants={[CONST.POLICY.ACCESS_VARIANTS.ADMIN, CONST.POLICY.ACCESS_VARIANTS.PAID]}
@@ -135,7 +145,18 @@ function WorkspaceExpensifyCardDetailsPage({route}: WorkspaceExpensifyCardDetail
135145
iconFill={theme.icon}
136146
title={translate('workspace.expensifyCard.deactivate')}
137147
style={styles.mv1}
138-
onPress={() => {}} // TODO: create Deactivate card logic https://github.com/Expensify/App/issues/44320
148+
onPress={() => setIsDeactivateModalVisible(true)}
149+
/>
150+
<ConfirmModal
151+
title={translate('workspace.card.deactivateCardModal.deactivateCard')}
152+
isVisible={isDeactivateModalVisible}
153+
onConfirm={deactivateCard}
154+
onCancel={() => setIsDeactivateModalVisible(false)}
155+
shouldSetModalVisibility={false}
156+
prompt={translate('workspace.card.deactivateCardModal.deactivateConfirmation')}
157+
confirmText={translate('workspace.card.deactivateCardModal.deactivate')}
158+
cancelText={translate('common.cancel')}
159+
danger
139160
/>
140161
</ScrollView>
141162
</>

0 commit comments

Comments
 (0)