Skip to content

Commit b81033d

Browse files
authored
Merge pull request #119 from amina-deriv/amina/remove_failed_verification_modals_of_mt5
Amina/remove failed verification modals of mt5
2 parents b28415f + 0e467e9 commit b81033d

File tree

26 files changed

+310
-458
lines changed

26 files changed

+310
-458
lines changed

packages/account/src/Components/poi-poa-docs-submitted/poi-poa-docs-submitted.tsx

-73
This file was deleted.

packages/account/src/Configs/__test__/get-status-badge-config.spec.tsx

+17-12
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,26 @@ import React from 'react';
22
import { BrowserRouter } from 'react-router-dom';
33
import { fireEvent, render, screen } from '@testing-library/react';
44
import userEvent from '@testing-library/user-event';
5-
import getStatusBadgeConfig from 'Configs/get-status-badge-config';
5+
import getStatusBadgeConfig from '../get-status-badge-config';
66
import { AUTH_STATUS_CODES, MT5_ACCOUNT_STATUS, routes } from '@deriv/shared';
77
import { TMT5AccountStatus } from 'Types';
88

99
describe('getStatusBadgeConfig', () => {
1010
let account_status: TMT5AccountStatus;
11-
const openFailedVerificationModal = jest.fn();
11+
const openVerificationDocsListModal = jest.fn();
1212
const setIsVerificationModalVisible = jest.fn();
1313
const selected_account_type = 'test type';
1414

1515
const renderCheck = (
1616
account_status: Parameters<typeof getStatusBadgeConfig>[0],
17-
openFailedVerificationModal: Parameters<typeof getStatusBadgeConfig>[1],
17+
openVerificationDocsListModal: Parameters<typeof getStatusBadgeConfig>[1],
1818
selected_account_type: Parameters<typeof getStatusBadgeConfig>[2],
1919
setIsVerificationModalVisible?: Parameters<typeof getStatusBadgeConfig>[3],
2020
user_account_status?: Parameters<typeof getStatusBadgeConfig>[4]
2121
) => {
2222
const badge = getStatusBadgeConfig(
2323
account_status,
24-
openFailedVerificationModal,
24+
openVerificationDocsListModal,
2525
selected_account_type,
2626
setIsVerificationModalVisible,
2727
user_account_status
@@ -37,7 +37,7 @@ describe('getStatusBadgeConfig', () => {
3737
it('should render pending status', () => {
3838
account_status = MT5_ACCOUNT_STATUS.PENDING;
3939

40-
renderCheck(account_status, openFailedVerificationModal, selected_account_type);
40+
renderCheck(account_status, openVerificationDocsListModal, selected_account_type);
4141

4242
expect(screen.getByText('Pending verification')).toBeInTheDocument();
4343
expect(screen.getByText('IcAlertWarning')).toBeInTheDocument();
@@ -46,19 +46,24 @@ describe('getStatusBadgeConfig', () => {
4646
it('should render failed status and trigger "Why?"', () => {
4747
account_status = MT5_ACCOUNT_STATUS.FAILED;
4848

49-
renderCheck(account_status, openFailedVerificationModal, selected_account_type);
49+
renderCheck(account_status, openVerificationDocsListModal, selected_account_type);
5050

5151
expect(screen.getByText('Verification failed.')).toBeInTheDocument();
5252
expect(screen.getByText('IcRedWarning')).toBeInTheDocument();
5353

5454
fireEvent.click(screen.getByText('Why?'));
55-
expect(openFailedVerificationModal).toBeCalledWith(selected_account_type);
55+
expect(openVerificationDocsListModal).toBeCalledWith(selected_account_type);
5656
});
5757

5858
it('should render needs_verification status and redirect to identity by default', () => {
5959
account_status = MT5_ACCOUNT_STATUS.NEEDS_VERIFICATION;
6060

61-
renderCheck(account_status, openFailedVerificationModal, selected_account_type, setIsVerificationModalVisible);
61+
renderCheck(
62+
account_status,
63+
openVerificationDocsListModal,
64+
selected_account_type,
65+
setIsVerificationModalVisible
66+
);
6267

6368
expect(screen.getByText(/Needs verification./));
6469
expect(screen.getByText('IcAlertInfo'));
@@ -74,7 +79,7 @@ describe('getStatusBadgeConfig', () => {
7479
it('should render migrated_with_position status', () => {
7580
account_status = MT5_ACCOUNT_STATUS.MIGRATED_WITH_POSITION;
7681

77-
renderCheck(account_status, openFailedVerificationModal, selected_account_type);
82+
renderCheck(account_status, openVerificationDocsListModal, selected_account_type);
7883

7984
expect(screen.getByText('No new positions')).toBeInTheDocument();
8085
expect(screen.getByText('IcAlertWarning')).toBeInTheDocument();
@@ -83,7 +88,7 @@ describe('getStatusBadgeConfig', () => {
8388
it('should render migrated_without_position status', () => {
8489
account_status = MT5_ACCOUNT_STATUS.MIGRATED_WITHOUT_POSITION;
8590

86-
renderCheck(account_status, openFailedVerificationModal, selected_account_type);
91+
renderCheck(account_status, openVerificationDocsListModal, selected_account_type);
8792

8893
expect(screen.getByText('Account closed')).toBeInTheDocument();
8994
expect(screen.getByText('IcAlertWarning')).toBeInTheDocument();
@@ -92,7 +97,7 @@ describe('getStatusBadgeConfig', () => {
9297
it('should render need_verification status and redirect to POA when POI is verified', () => {
9398
account_status = MT5_ACCOUNT_STATUS.NEEDS_VERIFICATION;
9499

95-
renderCheck(account_status, openFailedVerificationModal, selected_account_type, undefined, {
100+
renderCheck(account_status, openVerificationDocsListModal, selected_account_type, undefined, {
96101
poi_status: AUTH_STATUS_CODES.VERIFIED,
97102
poa_status: AUTH_STATUS_CODES.NONE,
98103
});
@@ -109,7 +114,7 @@ describe('getStatusBadgeConfig', () => {
109114
it('should render need_verification status and redirect to POI when POI status is not verified and POA status is not verified', () => {
110115
account_status = MT5_ACCOUNT_STATUS.NEEDS_VERIFICATION;
111116

112-
renderCheck(account_status, openFailedVerificationModal, selected_account_type, undefined, {
117+
renderCheck(account_status, openVerificationDocsListModal, selected_account_type, undefined, {
113118
poi_status: AUTH_STATUS_CODES.NONE,
114119
poa_status: AUTH_STATUS_CODES.NONE,
115120
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
import React from 'react';
2+
import { Text } from '@deriv/components';
3+
import { MT5_ACCOUNT_STATUS, TRADING_PLATFORM_STATUS } from '@deriv/shared';
4+
import { Localize } from '@deriv/translations';
5+
import { TMT5AccountStatus } from '../Types/common.type';
6+
7+
const getMT5StatusBadgeConfig = (mt5_account_status: TMT5AccountStatus) => {
8+
const BadgeTextComponent = <Text key={0} weight='bold' size='xxxs' color='warning' />;
9+
10+
switch (mt5_account_status) {
11+
case MT5_ACCOUNT_STATUS.PENDING:
12+
return {
13+
text: (
14+
<Localize
15+
i18n_default_text='<0>Pending verification</0>'
16+
components={[<Text key={0} weight='bold' size='xxxs' color='var(--status-warning)' />]}
17+
/>
18+
),
19+
icon: 'IcAlertWarning',
20+
};
21+
case MT5_ACCOUNT_STATUS.FAILED:
22+
return {
23+
text: (
24+
<Localize
25+
i18n_default_text='<0>Verification failed.</0> <1>Why?</1>'
26+
components={[
27+
<Text key={0} weight='bold' size='xxxs' color='var(--status-danger)' />,
28+
<Text
29+
key={1}
30+
className='link-verification-failed'
31+
onClick={() => {
32+
//TODO: default jurisdiction;
33+
}}
34+
/>,
35+
]}
36+
/>
37+
),
38+
icon: 'IcRedWarning',
39+
};
40+
case MT5_ACCOUNT_STATUS.NEEDS_VERIFICATION: {
41+
return {
42+
text: (
43+
<Localize
44+
i18n_default_text='<0>Needs verification.</0><1>Verify now</1>'
45+
components={[
46+
<Text key={0} weight='bold' size='xxxs' color='var(--status-info)' />,
47+
<Text
48+
key={1}
49+
className='link-need-verification'
50+
onClick={() => {
51+
//TODO: default jurisdiction;
52+
}}
53+
/>,
54+
]}
55+
/>
56+
),
57+
icon: 'IcAlertInfo',
58+
};
59+
}
60+
case MT5_ACCOUNT_STATUS.MIGRATED_WITH_POSITION:
61+
return {
62+
text: <Localize i18n_default_text='<0>No new positions</0>' components={[BadgeTextComponent]} />,
63+
icon: 'IcAlertWarning',
64+
};
65+
case MT5_ACCOUNT_STATUS.MIGRATED_WITHOUT_POSITION:
66+
return {
67+
text: <Localize i18n_default_text='<0>Account closed</0>' components={[BadgeTextComponent]} />,
68+
icon: 'IcAlertWarning',
69+
};
70+
case MT5_ACCOUNT_STATUS.UNDER_MAINTENANCE:
71+
return {
72+
text: <Localize i18n_default_text='<0>Server maintenance</0>' components={[BadgeTextComponent]} />,
73+
icon: 'IcAlertWarning',
74+
};
75+
case TRADING_PLATFORM_STATUS.UNAVAILABLE:
76+
return {
77+
text: <Localize i18n_default_text='<0>Unavailable</0>' components={[BadgeTextComponent]} />,
78+
icon: 'IcAlertWarning',
79+
};
80+
default:
81+
return {
82+
text: '',
83+
icon: '',
84+
};
85+
}
86+
};
87+
88+
export default getMT5StatusBadgeConfig;

packages/account/src/Configs/get-status-badge-config.tsx

+15-50
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,12 @@
11
import React from 'react';
22
import { Text } from '@deriv/components';
3-
import { AUTH_STATUS_CODES, MT5_ACCOUNT_STATUS, TRADING_PLATFORM_STATUS, routes } from '@deriv/shared';
3+
import { ACCOUNT_BADGE_STATUS } from '@deriv/shared';
44
import { Localize } from '@deriv/translations';
5-
import { TAuthStatusCodes, TMT5AccountStatus } from '../Types/common.type';
6-
import { Link } from 'react-router-dom';
5+
import { TAccountBadgeStatus } from '../Types/common.type';
76

8-
const getStatusBadgeConfig = (
9-
mt5_account_status: TMT5AccountStatus,
10-
openFailedVerificationModal?: (selected_account_type: string) => void,
11-
selected_account_type?: string,
12-
setIsVerificationModalVisible?: (value: boolean) => void,
13-
user_account_status?: { poi_status: TAuthStatusCodes; poa_status: TAuthStatusCodes }
14-
) => {
15-
const BadgeTextComponent = <Text key={0} weight='bold' size='xxxs' color='warning' />;
16-
17-
switch (mt5_account_status) {
18-
case MT5_ACCOUNT_STATUS.PENDING:
7+
const getStatusBadgeConfig = (account_status: TAccountBadgeStatus, openVerificationDocsListModal: () => void) => {
8+
switch (account_status) {
9+
case ACCOUNT_BADGE_STATUS.PENDING:
1910
return {
2011
text: (
2112
<Localize
@@ -25,7 +16,7 @@ const getStatusBadgeConfig = (
2516
),
2617
icon: 'IcAlertWarning',
2718
};
28-
case MT5_ACCOUNT_STATUS.FAILED:
19+
case ACCOUNT_BADGE_STATUS.FAILED:
2920
return {
3021
text: (
3122
<Localize
@@ -36,60 +27,34 @@ const getStatusBadgeConfig = (
3627
key={1}
3728
className='link-verification-failed'
3829
onClick={() => {
39-
openFailedVerificationModal?.(selected_account_type ?? '');
30+
openVerificationDocsListModal();
4031
}}
4132
/>,
4233
]}
4334
/>
4435
),
4536
icon: 'IcRedWarning',
4637
};
47-
case MT5_ACCOUNT_STATUS.NEEDS_VERIFICATION: {
48-
const redirect_url =
49-
user_account_status?.poi_status === AUTH_STATUS_CODES.NONE
50-
? routes.proof_of_identity
51-
: routes.proof_of_address;
38+
case ACCOUNT_BADGE_STATUS.NEEDS_VERIFICATION: {
5239
return {
5340
text: (
5441
<Localize
5542
i18n_default_text='<0>Needs verification.</0><1>Verify now</1>'
5643
components={[
5744
<Text key={0} weight='bold' size='xxxs' color='var(--status-info)' />,
58-
setIsVerificationModalVisible ? (
59-
<Text
60-
key={1}
61-
className='link-need-verification'
62-
onClick={() => setIsVerificationModalVisible?.(true)}
63-
/>
64-
) : (
65-
<Link key={1} className='link-need-verification' to={redirect_url} />
66-
),
45+
<Text
46+
key={1}
47+
className='link-need-verification'
48+
onClick={() => {
49+
openVerificationDocsListModal();
50+
}}
51+
/>,
6752
]}
6853
/>
6954
),
7055
icon: 'IcAlertInfo',
7156
};
7257
}
73-
case MT5_ACCOUNT_STATUS.MIGRATED_WITH_POSITION:
74-
return {
75-
text: <Localize i18n_default_text='<0>No new positions</0>' components={[BadgeTextComponent]} />,
76-
icon: 'IcAlertWarning',
77-
};
78-
case MT5_ACCOUNT_STATUS.MIGRATED_WITHOUT_POSITION:
79-
return {
80-
text: <Localize i18n_default_text='<0>Account closed</0>' components={[BadgeTextComponent]} />,
81-
icon: 'IcAlertWarning',
82-
};
83-
case MT5_ACCOUNT_STATUS.UNDER_MAINTENANCE:
84-
return {
85-
text: <Localize i18n_default_text='<0>Server maintenance</0>' components={[BadgeTextComponent]} />,
86-
icon: 'IcAlertWarning',
87-
};
88-
case TRADING_PLATFORM_STATUS.UNAVAILABLE:
89-
return {
90-
text: <Localize i18n_default_text='<0>Unavailable</0>' components={[BadgeTextComponent]} />,
91-
icon: 'IcAlertWarning',
92-
};
9358
default:
9459
return {
9560
text: '',

packages/account/src/Types/common.type.ts

+3
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import {
1919
MT5_ACCOUNT_STATUS,
2020
Platforms,
2121
TRADING_PLATFORM_STATUS,
22+
ACCOUNT_BADGE_STATUS,
2223
} from '@deriv/shared';
2324

2425
export type TToken = NonNullable<ApiToken['tokens']>[0];
@@ -281,6 +282,8 @@ export type TFinancialInformationForm = Omit<SetFinancialAssessmentRequest, 'set
281282

282283
export type TAuthStatusCodes = typeof AUTH_STATUS_CODES[keyof typeof AUTH_STATUS_CODES];
283284

285+
export type TAccountBadgeStatus = typeof ACCOUNT_BADGE_STATUS[keyof typeof ACCOUNT_BADGE_STATUS] | null;
286+
284287
export type TMT5AccountStatus =
285288
| typeof MT5_ACCOUNT_STATUS[keyof typeof MT5_ACCOUNT_STATUS]
286289
| typeof TRADING_PLATFORM_STATUS[keyof typeof TRADING_PLATFORM_STATUS];

0 commit comments

Comments
 (0)