|
1 | | -import React, {useCallback, useEffect, useState} from 'react'; |
| 1 | +import React, {useCallback, useEffect} from 'react'; |
2 | 2 | import ValidateCodeActionContent from '@components/ValidateCodeActionModal/ValidateCodeActionContent'; |
3 | 3 | import useDefaultFundID from '@hooks/useDefaultFundID'; |
4 | 4 | import useInitial from '@hooks/useInitial'; |
5 | 5 | import useLocalize from '@hooks/useLocalize'; |
6 | 6 | import useOnyx from '@hooks/useOnyx'; |
7 | 7 | import usePermissions from '@hooks/usePermissions'; |
8 | | -import {clearIssueNewCardFlow, issueExpensifyCard} from '@libs/actions/Card'; |
| 8 | +import {clearIssueNewCardError, clearIssueNewCardFlow, issueExpensifyCard} from '@libs/actions/Card'; |
9 | 9 | import {requestValidateCodeAction, resetValidateActionCodeSent} from '@libs/actions/User'; |
| 10 | +import {getLatestErrorMessageField} from '@libs/ErrorUtils'; |
10 | 11 | import Navigation from '@libs/Navigation/Navigation'; |
11 | 12 | import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; |
12 | 13 | import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; |
13 | 14 | import CONST from '@src/CONST'; |
14 | 15 | import ONYXKEYS from '@src/ONYXKEYS'; |
15 | 16 | import ROUTES from '@src/ROUTES'; |
16 | 17 | import type SCREENS from '@src/SCREENS'; |
17 | | -import type {Errors} from '@src/types/onyx/OnyxCommon'; |
18 | 18 |
|
19 | 19 | type IssueNewCardConfirmMagicCodePageProps = PlatformStackScreenProps<SettingsNavigatorParamList, typeof SCREENS.WORKSPACE.EXPENSIFY_CARD_ISSUE_NEW_CONFIRM_MAGIC_CODE>; |
20 | 20 |
|
21 | 21 | function IssueNewCardConfirmMagicCodePage({route}: IssueNewCardConfirmMagicCodePageProps) { |
22 | 22 | const {translate} = useLocalize(); |
23 | 23 | const policyID = route.params.policyID; |
24 | 24 | const backTo = route.params.backTo; |
25 | | - const [validateError, setValidateError] = useState<Errors>({}); |
26 | 25 | const [account] = useOnyx(ONYXKEYS.ACCOUNT, {canBeMissing: false}); |
27 | 26 | const primaryLogin = account?.primaryLogin ?? ''; |
28 | 27 | const [issueNewCard] = useOnyx(`${ONYXKEYS.COLLECTION.ISSUE_NEW_EXPENSIFY_CARD}${policyID}`, {canBeMissing: true}); |
| 28 | + const validateError = getLatestErrorMessageField(issueNewCard); |
29 | 29 | const data = issueNewCard?.data; |
30 | 30 | const isSuccessful = issueNewCard?.isSuccessful; |
31 | 31 | const defaultFundID = useDefaultFundID(policyID); |
@@ -67,7 +67,7 @@ function IssueNewCardConfirmMagicCodePage({route}: IssueNewCardConfirmMagicCodeP |
67 | 67 | validateCodeActionErrorField={data?.cardType === CONST.EXPENSIFY_CARD.CARD_TYPE.PHYSICAL ? 'createExpensifyCard' : 'createAdminIssuedVirtualCard'} |
68 | 68 | handleSubmitForm={handleSubmit} |
69 | 69 | validateError={validateError} |
70 | | - clearError={() => setValidateError({})} |
| 70 | + clearError={() => clearIssueNewCardError(policyID)} |
71 | 71 | onClose={handleClose} |
72 | 72 | /> |
73 | 73 | ); |
|
0 commit comments