1
1
import type { StackScreenProps } from '@react-navigation/stack' ;
2
- import React from 'react' ;
2
+ import React , { useState } from 'react' ;
3
3
import { View } from 'react-native' ;
4
4
import { useOnyx } from 'react-native-onyx' ;
5
5
import ExpensifyCardImage from '@assets/images/expensify-card.svg' ;
6
6
import Badge from '@components/Badge' ;
7
+ import ConfirmModal from '@components/ConfirmModal' ;
7
8
import HeaderWithBackButton from '@components/HeaderWithBackButton' ;
8
9
import { FallbackAvatar } from '@components/Icon/Expensicons' ;
9
10
import * as Expensicons from '@components/Icon/Expensicons' ;
@@ -45,6 +46,7 @@ type WorkspaceExpensifyCardDetailsPageProps = StackScreenProps<SettingsNavigator
45
46
function WorkspaceExpensifyCardDetailsPage ( { route} : WorkspaceExpensifyCardDetailsPageProps ) {
46
47
const { policyID, cardID, backTo} = route . params ;
47
48
49
+ const [ isDeactivateModalVisible , setIsDeactivateModalVisible ] = useState ( false ) ;
48
50
const { translate} = useLocalize ( ) ;
49
51
const styles = useThemeStyles ( ) ;
50
52
const theme = useTheme ( ) ;
@@ -60,6 +62,14 @@ function WorkspaceExpensifyCardDetailsPage({route}: WorkspaceExpensifyCardDetail
60
62
const displayName = PersonalDetailsUtils . getDisplayNameOrDefault ( cardholder ) ;
61
63
const translationForLimitType = CardUtils . getTranslationKeyForLimitType ( card . nameValuePairs ?. limitType ) ;
62
64
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
+
63
73
return (
64
74
< AccessOrNotFoundWrapper
65
75
accessVariants = { [ CONST . POLICY . ACCESS_VARIANTS . ADMIN , CONST . POLICY . ACCESS_VARIANTS . PAID ] }
@@ -135,7 +145,18 @@ function WorkspaceExpensifyCardDetailsPage({route}: WorkspaceExpensifyCardDetail
135
145
iconFill = { theme . icon }
136
146
title = { translate ( 'workspace.expensifyCard.deactivate' ) }
137
147
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
139
160
/>
140
161
</ ScrollView >
141
162
</ >
0 commit comments