+ {clickable_description.map(description_part => {
+ return description_part.type === 'link' ? (
+
+
+ {description_part.text}
+
+
+
+ ) : (
+
+ {description_part.text}
+
+ );
+ })}
+
+);
+
+export default JurisdictionClickableDescription;
diff --git a/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-modal-checkbox.tsx b/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-modal-checkbox.tsx
index 6b453405b1e1..7de131031f52 100644
--- a/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-modal-checkbox.tsx
+++ b/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-modal-checkbox.tsx
@@ -1,6 +1,6 @@
import React from 'react';
import { Checkbox, StaticUrl, Text } from '@deriv/components';
-import { isMobile } from '@deriv/shared';
+import { isMobile, Jurisdiction } from '@deriv/shared';
import { Localize } from '@deriv/translations';
import { TJurisdictionCheckBoxProps } from '../props.types';
@@ -14,17 +14,15 @@ const JurisdictionCheckBox = ({
should_restrict_vanuatu_account_creation,
}: TJurisdictionCheckBoxProps) => {
const shouldShowCheckBox = () => {
- if (jurisdiction_selected_shortcode) {
- if (
- jurisdiction_selected_shortcode === 'svg' ||
- (jurisdiction_selected_shortcode === 'bvi' && should_restrict_bvi_account_creation) ||
- (jurisdiction_selected_shortcode === 'vanuatu' && should_restrict_vanuatu_account_creation)
- ) {
- return false;
- }
- return true;
+ if (
+ !jurisdiction_selected_shortcode ||
+ jurisdiction_selected_shortcode === Jurisdiction.SVG ||
+ (jurisdiction_selected_shortcode === Jurisdiction.BVI && should_restrict_bvi_account_creation) ||
+ (jurisdiction_selected_shortcode === Jurisdiction.VANUATU && should_restrict_vanuatu_account_creation)
+ ) {
+ return false;
}
- return false;
+ return true;
};
const dbvi_company_names: { [key: string]: { [key: string]: string } } = {
diff --git a/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-modal-content-wrapper.tsx b/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-modal-content-wrapper.tsx
new file mode 100644
index 000000000000..4f7da4f1185d
--- /dev/null
+++ b/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-modal-content-wrapper.tsx
@@ -0,0 +1,224 @@
+import React from 'react';
+import { Button, Modal } from '@deriv/components';
+import { getAuthenticationStatusInfo, isMobile, Jurisdiction } from '@deriv/shared';
+import { localize } from '@deriv/translations';
+import { TJurisdictionModalContentWrapperProps } from '../props.types';
+import { connect } from '../../Stores/connect';
+import RootStore from '../../Stores/index';
+import JurisdictionModalContent from './jurisdiction-modal-content';
+import JurisdictionCheckBox from './jurisdiction-modal-checkbox';
+import JurisdictionModalFootNote from './jurisdiction-modal-foot-note';
+
+const JurisdictionModalContentWrapper = ({
+ account_status,
+ account_type,
+ context,
+ fetchAccountSettings,
+ has_submitted_cfd_personal_details,
+ is_jurisdiction_modal_visible,
+ is_virtual,
+ jurisdiction_selected_shortcode,
+ openPasswordModal,
+ real_financial_accounts_existing_data,
+ real_synthetic_accounts_existing_data,
+ setJurisdictionSelectedShortcode,
+ should_restrict_bvi_account_creation,
+ should_restrict_vanuatu_account_creation,
+ show_eu_related_content,
+ toggleCFDVerificationModal,
+ trading_platform_available_accounts,
+ toggleJurisdictionModal,
+ updateMT5Status,
+}: TJurisdictionModalContentWrapperProps) => {
+ const [checked, setChecked] = React.useState(false);
+
+ const {
+ poi_or_poa_not_submitted,
+ poi_acknowledged_for_bvi_labuan,
+ poi_acknowledged_for_vanuatu_maltainvest,
+ poa_acknowledged,
+ need_poa_resubmission,
+ } = getAuthenticationStatusInfo(account_status);
+
+ React.useEffect(() => {
+ if (is_jurisdiction_modal_visible) {
+ if (!is_virtual) {
+ updateMT5Status();
+ fetchAccountSettings();
+ }
+ setJurisdictionSelectedShortcode('');
+ }
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [is_jurisdiction_modal_visible]);
+
+ React.useEffect(() => {
+ if (jurisdiction_selected_shortcode) {
+ setChecked(false);
+ }
+ }, [jurisdiction_selected_shortcode, is_jurisdiction_modal_visible]);
+
+ const financial_available_accounts = trading_platform_available_accounts.filter(
+ available_account =>
+ available_account.market_type === 'financial' &&
+ (show_eu_related_content
+ ? available_account.shortcode === 'maltainvest'
+ : available_account.shortcode !== 'maltainvest')
+ );
+
+ const synthetic_available_accounts = trading_platform_available_accounts.filter(
+ available_account =>
+ available_account.market_type === 'gaming' &&
+ (show_eu_related_content
+ ? available_account.shortcode === 'maltainvest'
+ : available_account.shortcode !== 'maltainvest')
+ );
+
+ const is_svg_selected = jurisdiction_selected_shortcode === Jurisdiction.SVG;
+ const is_bvi_selected = jurisdiction_selected_shortcode === Jurisdiction.BVI;
+ const is_vanuatu_selected = jurisdiction_selected_shortcode === Jurisdiction.VANUATU;
+ const is_labuan_selected = jurisdiction_selected_shortcode === Jurisdiction.LABUAN;
+ const is_maltainvest_selected = jurisdiction_selected_shortcode === Jurisdiction.MALTA_INVEST;
+
+ const isNextButtonDisabled = () => {
+ if (jurisdiction_selected_shortcode) {
+ const is_account_created =
+ account_type.type === 'synthetic'
+ ? real_synthetic_accounts_existing_data?.some(
+ account => account.landing_company_short === jurisdiction_selected_shortcode
+ )
+ : real_financial_accounts_existing_data?.some(
+ account => account.landing_company_short === jurisdiction_selected_shortcode
+ );
+
+ if (!is_account_created) {
+ if (
+ is_svg_selected ||
+ (is_bvi_selected && should_restrict_bvi_account_creation && need_poa_resubmission) ||
+ (is_vanuatu_selected && should_restrict_vanuatu_account_creation && need_poa_resubmission)
+ ) {
+ return false;
+ }
+ return !checked;
+ }
+ return true;
+ }
+ return true;
+ };
+
+ const onSelectRealAccount = () => {
+ const type_of_account = {
+ category: account_type.category,
+ type: account_type.type,
+ };
+
+ if (is_svg_selected) {
+ openPasswordModal(type_of_account);
+ } else if (is_vanuatu_selected) {
+ if (
+ poi_acknowledged_for_vanuatu_maltainvest &&
+ !poi_or_poa_not_submitted &&
+ !should_restrict_vanuatu_account_creation &&
+ poa_acknowledged &&
+ has_submitted_cfd_personal_details
+ ) {
+ openPasswordModal(type_of_account);
+ } else {
+ toggleCFDVerificationModal();
+ }
+ } else if (is_bvi_selected) {
+ if (
+ poi_acknowledged_for_bvi_labuan &&
+ !poi_or_poa_not_submitted &&
+ !should_restrict_bvi_account_creation &&
+ poa_acknowledged &&
+ has_submitted_cfd_personal_details
+ ) {
+ openPasswordModal(type_of_account);
+ } else {
+ toggleCFDVerificationModal();
+ }
+ } else if (is_labuan_selected) {
+ if (poi_acknowledged_for_bvi_labuan && poa_acknowledged && has_submitted_cfd_personal_details) {
+ openPasswordModal(type_of_account);
+ } else {
+ toggleCFDVerificationModal();
+ }
+ } else if (is_maltainvest_selected) {
+ if (poi_acknowledged_for_vanuatu_maltainvest && poa_acknowledged) {
+ openPasswordModal(type_of_account);
+ } else {
+ toggleCFDVerificationModal();
+ }
+ }
+ };
+
+ return (
+
+ {jurisdiction_cards_array.map(
+ card =>
+ cardsToBeShown(card) && (
+
+ )
+ )}
+
);
};
diff --git a/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-modal-foot-note.tsx b/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-modal-foot-note.tsx
index a9f4ddec1090..d8c4d305fb1c 100644
--- a/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-modal-foot-note.tsx
+++ b/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-modal-foot-note.tsx
@@ -1,7 +1,7 @@
import React from 'react';
import { Text } from '@deriv/components';
+import { getAuthenticationStatusInfo, isMobile, Jurisdiction } from '@deriv/shared';
import { Localize } from '@deriv/translations';
-import { getAuthenticationStatusInfo, isMobile } from '@deriv/shared';
import { TJurisdictionModalFootNoteProps } from '../props.types';
const FooterNote = ({
@@ -17,7 +17,7 @@ const FooterNote = ({
const { poa_pending } = getAuthenticationStatusInfo(account_status);
- if (jurisdiction_selected_shortcode === 'svg') {
+ if (jurisdiction_selected_shortcode === Jurisdiction.SVG) {
return (
}>
@@ -223,9 +36,9 @@ const JurisdictionModal = ({
toggleModal={toggleJurisdictionModal}
type='button'
context={context}
- width={account_type.type === 'synthetic' ? '1040px' : '1200px'}
+ width={account_type.type === 'synthetic' ? '1160px' : '1300px'}
>
-
+
@@ -236,7 +49,7 @@ const JurisdictionModal = ({
visible={is_jurisdiction_modal_visible}
onClose={toggleJurisdictionModal}
>
-
+
@@ -244,27 +57,11 @@ const JurisdictionModal = ({
);
};
-export default connect(({ modules: { cfd }, ui, client, traders_hub }: RootStore) => ({
+export default connect(({ modules: { cfd }, ui, traders_hub }: RootStore) => ({
account_type: cfd.account_type,
- account_settings: client.account_settings,
- account_status: client.account_status,
- content_flag: traders_hub.content_flag,
disableApp: ui.disableApp,
enableApp: ui.enableApp,
is_jurisdiction_modal_visible: cfd.is_jurisdiction_modal_visible,
- is_virtual: client.is_virtual,
- jurisdiction_selected_shortcode: cfd.jurisdiction_selected_shortcode,
- real_financial_accounts_existing_data: cfd.real_financial_accounts_existing_data,
- real_synthetic_accounts_existing_data: cfd.real_synthetic_accounts_existing_data,
- setAccountSettings: client.setAccountSettings,
- setJurisdictionSelectedShortcode: cfd.setJurisdictionSelectedShortcode,
- should_restrict_bvi_account_creation: client.should_restrict_bvi_account_creation,
- should_restrict_vanuatu_account_creation: client.should_restrict_vanuatu_account_creation,
show_eu_related_content: traders_hub.show_eu_related_content,
- trading_platform_available_accounts: client.trading_platform_available_accounts,
- toggleCFDVerificationModal: cfd.toggleCFDVerificationModal,
toggleJurisdictionModal: cfd.toggleJurisdictionModal,
- updateMT5Status: client.updateMT5Status,
- fetchAccountSettings: client.fetchAccountSettings,
- has_submitted_cfd_personal_details: cfd.has_submitted_cfd_personal_details,
}))(JurisdictionModal);
diff --git a/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-title-indicator.tsx b/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-title-indicator.tsx
new file mode 100644
index 000000000000..84aa42658424
--- /dev/null
+++ b/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-title-indicator.tsx
@@ -0,0 +1,100 @@
+import React from 'react';
+import classNames from 'classnames';
+import { Icon, Text } from '@deriv/components';
+import { getAuthenticationStatusInfo, Jurisdiction } from '@deriv/shared';
+import { jurisdictionVerificationContents } from 'Constants/jurisdiction-contents/jurisdiction-verification-contents';
+import { TJurisdictionTitleIndicatorProps } from 'Containers/props.types';
+import { TJurisdictionCardItemVerificationItem, TJurisdictionCardVerificationStatus } from 'Components/props.types';
+
+const JurisdictionTitleIndicator = ({
+ account_status,
+ title_indicators,
+ type_of_card,
+ verification_docs,
+}: TJurisdictionTitleIndicatorProps) => {
+ const {
+ poi_pending_for_bvi_labuan,
+ poi_resubmit_for_bvi_labuan,
+ poi_verified_for_bvi_labuan,
+ poi_pending_for_vanuatu_maltainvest,
+ poi_resubmit_for_vanuatu_maltainvest,
+ poi_verified_for_vanuatu_maltainvest,
+ poa_pending,
+ need_poa_resubmission,
+ poa_verified,
+ } = getAuthenticationStatusInfo(account_status);
+
+ const getVerificationIconVariant = (verification_document: TJurisdictionCardItemVerificationItem): string => {
+ let icon_variant: TJurisdictionCardVerificationStatus = 'Default';
+ if (type_of_card === Jurisdiction.BVI || type_of_card === Jurisdiction.LABUAN) {
+ if (verification_document === 'document_number') {
+ if (poi_pending_for_bvi_labuan) {
+ icon_variant = 'Pending';
+ } else if (poi_resubmit_for_bvi_labuan) {
+ icon_variant = 'Failed';
+ } else if (poi_verified_for_bvi_labuan) {
+ icon_variant = 'Verified';
+ }
+ }
+ } else if (type_of_card === Jurisdiction.VANUATU || type_of_card === Jurisdiction.MALTA_INVEST) {
+ if (verification_document === 'selfie' || verification_document === 'identity_document') {
+ if (poi_pending_for_vanuatu_maltainvest) {
+ icon_variant = 'Pending';
+ } else if (poi_resubmit_for_vanuatu_maltainvest) {
+ icon_variant = 'Failed';
+ } else if (poi_verified_for_vanuatu_maltainvest) {
+ icon_variant = 'Verified';
+ }
+ }
+ }
+ if (verification_document === 'name_and_address') {
+ if (poa_pending) {
+ icon_variant = 'Pending';
+ } else if (need_poa_resubmission) {
+ icon_variant = 'Failed';
+ } else if (poa_verified) {
+ icon_variant = 'Verified';
+ }
+ }
+ return icon_variant;
+ };
+
+ return title_indicators.type === 'displayText' ? (
+
+ {title_indicators.display_text}
+
+ ) : (
+
+ {verification_docs?.map(verification_document => (
+
+
+
+ ))}
+
+ );
+};
+
+export default JurisdictionTitleIndicator;
diff --git a/packages/cfd/src/Containers/mt5-compare-table-content.tsx b/packages/cfd/src/Containers/mt5-compare-table-content.tsx
index e3853ab0663f..40ab17dff174 100644
--- a/packages/cfd/src/Containers/mt5-compare-table-content.tsx
+++ b/packages/cfd/src/Containers/mt5-compare-table-content.tsx
@@ -2,7 +2,7 @@ import React from 'react';
import classNames from 'classnames';
import { Table, Button, Text, Popover } from '@deriv/components';
import { localize } from '@deriv/translations';
-import { isDesktop, WS, getAuthenticationStatusInfo, CFD_PLATFORMS, ContentFlag } from '@deriv/shared';
+import { isDesktop, WS, getAuthenticationStatusInfo, CFD_PLATFORMS, ContentFlag, Jurisdiction } from '@deriv/shared';
import { connect } from '../Stores/connect';
import RootStore from '../Stores/index';
import {
@@ -312,13 +312,13 @@ const DMT5CompareModalContent = ({
case 'synthetic_svg':
case 'financial_svg':
setAppstorePlatform(CFD_PLATFORMS.MT5);
- setJurisdictionSelectedShortcode('svg');
+ setJurisdictionSelectedShortcode(Jurisdiction.SVG);
openPasswordModal(type_of_account);
break;
case 'synthetic_bvi':
case 'financial_bvi':
setAppstorePlatform(CFD_PLATFORMS.MT5);
- setJurisdictionSelectedShortcode('bvi');
+ setJurisdictionSelectedShortcode(Jurisdiction.BVI);
if (
poi_acknowledged_for_bvi_labuan &&
!poi_or_poa_not_submitted &&
@@ -334,7 +334,7 @@ const DMT5CompareModalContent = ({
case 'synthetic_vanuatu':
case 'financial_vanuatu':
setAppstorePlatform(CFD_PLATFORMS.MT5);
- setJurisdictionSelectedShortcode('vanuatu');
+ setJurisdictionSelectedShortcode(Jurisdiction.VANUATU);
if (
poi_acknowledged_for_vanuatu_maltainvest &&
!poi_or_poa_not_submitted &&
@@ -349,7 +349,7 @@ const DMT5CompareModalContent = ({
break;
case 'financial_labuan':
setAppstorePlatform(CFD_PLATFORMS.MT5);
- setJurisdictionSelectedShortcode('labuan');
+ setJurisdictionSelectedShortcode(Jurisdiction.LABUAN);
if (poi_acknowledged_for_bvi_labuan && poa_acknowledged && has_submitted_personal_details) {
openPasswordModal(type_of_account);
} else {
@@ -358,7 +358,7 @@ const DMT5CompareModalContent = ({
break;
case 'financial_maltainvest':
setAppstorePlatform(CFD_PLATFORMS.MT5);
- setJurisdictionSelectedShortcode('maltainvest');
+ setJurisdictionSelectedShortcode(Jurisdiction.MALTA_INVEST);
if ((poi_acknowledged_for_vanuatu_maltainvest && poa_acknowledged) || is_demo_tab) {
openPasswordModal(type_of_account);
} else {
diff --git a/packages/cfd/src/Containers/props.types.ts b/packages/cfd/src/Containers/props.types.ts
index 37856780cca8..2d44b8455445 100644
--- a/packages/cfd/src/Containers/props.types.ts
+++ b/packages/cfd/src/Containers/props.types.ts
@@ -1,3 +1,4 @@
+import React from 'react';
import {
DetailsOfEachMT5Loginid,
GetAccountStatus,
@@ -8,7 +9,15 @@ import {
} from '@deriv/api-types';
import { FormikHelpers as FormikActions } from 'formik';
import { TCFDPasswordFormValues } from './cfd-password-modal';
-import { TTradingPlatformAvailableAccount, TExistingData } from '../Components/props.types';
+import {
+ TTradingPlatformAvailableAccount,
+ TExistingData,
+ TJurisdictionCardSection,
+ TJurisdictionCardSectionTitleIndicators,
+ TClickableDescription,
+ TJurisdictionCardItems,
+ TJurisdictionCardItemVerification,
+} from '../Components/props.types';
import RootStore from '../Stores/index';
export type TCFDPersonalDetailsContainerProps = {
@@ -162,14 +171,47 @@ export type TCFDPasswordManagerModal = {
};
export type TJurisdictionCardProps = {
+ account_status: GetAccountStatus;
+ account_type: string;
+ disabled: boolean;
jurisdiction_selected_shortcode: string;
- context: RootStore;
- synthetic_available_accounts: TTradingPlatformAvailableAccount[];
- financial_available_accounts: TTradingPlatformAvailableAccount[];
setJurisdictionSelectedShortcode: (card_type: string) => void;
- account_type: string;
- type_of_card: string;
+ type_of_card: TJurisdictionCardType;
+};
+
+export type TJurisdictionCardBackProps = {
+ card_classname: string;
+ is_card_selected: boolean;
+ toggleCardFlip: React.MouseEventHandler
;
+ verification_docs: TJurisdictionCardItemVerification | undefined;
+};
+
+export type TJurisdictionCardFrontProps = TJurisdictionCardBackProps & {
+ account_status: GetAccountStatus;
+ card_data: TJurisdictionCardSection[];
+ card_values: TJurisdictionCardItems;
disabled: boolean;
+ type_of_card: TJurisdictionCardType;
+};
+
+export type TJurisdictionClickableDescriptionProps = {
+ clickable_description: Array;
+ toggleCardFlip: React.MouseEventHandler;
+};
+
+export type TJurisdictionTitleIndicatorProps = {
+ account_status: GetAccountStatus;
+ title_indicators: TJurisdictionCardSectionTitleIndicators;
+ type_of_card: TJurisdictionCardType;
+ verification_docs: TJurisdictionCardItemVerification | undefined;
+};
+
+export type TJurisdictionCardSectionProps = {
+ account_status: GetAccountStatus;
+ card_section_item: TJurisdictionCardSection;
+ toggleCardFlip: React.MouseEventHandler;
+ type_of_card: TJurisdictionCardType;
+ verification_docs: TJurisdictionCardItemVerification | undefined;
};
export type TJurisdictionCardType = 'svg' | 'bvi' | 'vanuatu' | 'labuan' | 'maltainvest';
@@ -202,35 +244,41 @@ type TOpenAccountTransferMeta = {
type?: string;
};
-export type TJurisdictionModalProps = {
+type TJurisdictionModalCommonProps = {
account_type: {
type: string;
category: string;
};
- account_status: GetAccountStatus;
context: RootStore;
- disableApp: () => void;
- enableApp: () => void;
is_jurisdiction_modal_visible: boolean;
+ openPasswordModal: (account_type: TOpenAccountTransferMeta) => void;
+ show_eu_related_content: boolean;
+ toggleJurisdictionModal: () => void;
+};
+
+export type TJurisdictionModalContentWrapperProps = TJurisdictionModalCommonProps & {
+ account_status: GetAccountStatus;
+ fetchAccountSettings: () => void;
+ has_submitted_cfd_personal_details: boolean;
is_virtual: boolean;
jurisdiction_selected_shortcode: string;
- openPasswordModal: (account_type: TOpenAccountTransferMeta) => void;
+ real_financial_accounts_existing_data: TExistingData;
+ real_synthetic_accounts_existing_data: TExistingData;
setJurisdictionSelectedShortcode: (shortcode: string) => void;
should_restrict_bvi_account_creation: boolean;
should_restrict_vanuatu_account_creation: boolean;
- show_eu_related_content: boolean;
- trading_platform_available_accounts: TTradingPlatformAvailableAccount[];
- fetchAccountSettings: () => void;
- toggleJurisdictionModal: () => void;
toggleCFDVerificationModal: () => void;
- real_synthetic_accounts_existing_data: TExistingData;
- real_financial_accounts_existing_data: TExistingData;
+ trading_platform_available_accounts: TTradingPlatformAvailableAccount[];
updateMT5Status: () => void;
- has_submitted_cfd_personal_details: boolean;
+};
+
+export type TJurisdictionModalProps = TJurisdictionModalCommonProps & {
+ disableApp: () => void;
+ enableApp: () => void;
};
export type TJurisdictionModalContentProps = {
- context: RootStore;
+ account_status: GetAccountStatus;
account_type: string;
jurisdiction_selected_shortcode: string;
setJurisdictionSelectedShortcode: (card_type: string) => void;
diff --git a/packages/cfd/src/Stores/Modules/CFD/Helpers/cfd-config.ts b/packages/cfd/src/Stores/Modules/CFD/Helpers/cfd-config.ts
index 0de741e45e0f..0785f3b59305 100644
--- a/packages/cfd/src/Stores/Modules/CFD/Helpers/cfd-config.ts
+++ b/packages/cfd/src/Stores/Modules/CFD/Helpers/cfd-config.ts
@@ -1,4 +1,5 @@
import { localize } from '@deriv/translations';
+import { Jurisdiction } from '@deriv/shared';
export type TDxCompanies = ReturnType;
export type TMtCompanies = ReturnType;
@@ -184,16 +185,16 @@ export const getFormattedJurisdictionCode = (jurisdiction_code: string) => {
let formatted_label = '';
switch (jurisdiction_code) {
- case 'svg':
+ case Jurisdiction.SVG:
formatted_label = localize('SVG');
break;
- case 'bvi':
+ case Jurisdiction.BVI:
formatted_label = localize('BVI');
break;
- case 'labuan':
+ case Jurisdiction.LABUAN:
formatted_label = localize('Labuan');
break;
- case 'vanuatu':
+ case Jurisdiction.VANUATU:
formatted_label = localize('Vanuatu');
break;
default:
diff --git a/packages/cfd/src/Stores/Modules/CFD/cfd-store.js b/packages/cfd/src/Stores/Modules/CFD/cfd-store.js
index 3a7e6e007c41..8f9fea9bfd40 100644
--- a/packages/cfd/src/Stores/Modules/CFD/cfd-store.js
+++ b/packages/cfd/src/Stores/Modules/CFD/cfd-store.js
@@ -1,5 +1,5 @@
import { action, computed, observable, reaction, runInAction, makeObservable, override } from 'mobx';
-import { getAccountListKey, getAccountTypeFields, CFD_PLATFORMS, WS } from '@deriv/shared';
+import { getAccountListKey, getAccountTypeFields, CFD_PLATFORMS, WS, Jurisdiction } from '@deriv/shared';
import BaseStore from 'Stores/base-store';
import { getDxCompanies, getMtCompanies } from './Helpers/cfd-config';
@@ -233,8 +233,8 @@ export default class CFDStore extends BaseStore {
this.toggleJurisdictionModal();
} else {
if (this.root_store.traders_hub.show_eu_related_content) {
- this.setJurisdictionSelectedShortcode('maltainvest');
- } else this.setJurisdictionSelectedShortcode('svg');
+ this.setJurisdictionSelectedShortcode(Jurisdiction.MALTA_INVEST);
+ } else this.setJurisdictionSelectedShortcode(Jurisdiction.SVG);
this.demoCFDSignup();
}
}
@@ -280,7 +280,7 @@ export default class CFDStore extends BaseStore {
zipCode: address_postcode,
...(values.server ? { server: values.server } : {}),
...(this.jurisdiction_selected_shortcode ? { company: this.jurisdiction_selected_shortcode } : {}),
- ...(this.jurisdiction_selected_shortcode !== 'labuan'
+ ...(this.jurisdiction_selected_shortcode !== Jurisdiction.LABUAN
? type_request
: {
account_type: 'financial',
diff --git a/packages/cfd/src/sass/cfd-dashboard.scss b/packages/cfd/src/sass/cfd-dashboard.scss
index 937250771fd5..5e292c59605d 100644
--- a/packages/cfd/src/sass/cfd-dashboard.scss
+++ b/packages/cfd/src/sass/cfd-dashboard.scss
@@ -489,20 +489,17 @@
.cfd-jurisdiction-card--synthetic,
.cfd-jurisdiction-card--financial {
- border: solid 1px var(--border-normal);
- border-radius: 0.8rem;
+ border: solid 2px var(--border-normal);
+ border-radius: $BORDER_RADIUS * 4;
display: flex;
justify-content: space-between;
flex-direction: column;
- min-height: 36rem;
- width: 27.6em;
- position: relative;
- padding: 1.6rem;
- @include mobile {
- margin-bottom: 2rem;
- }
+ height: 100%;
+ width: 100%;
+ cursor: pointer;
+ transition: all 0.1s ease-in;
- &:hover {
+ &:not(.selected-card):hover {
box-shadow: 0 2px 8px 0 var(--shadow-menu);
}
@@ -510,111 +507,125 @@
border: solid 1px var(--border-disabled);
}
- @include desktop {
- height: auto;
- margin: 0 0.8rem;
- }
-
&__wrapper {
- padding: 0;
- margin-top: 4.8rem;
+ margin: 4rem 6rem 2rem;
display: flex;
justify-content: center;
-
+ gap: 2rem;
@include mobile {
+ margin: 0;
+ padding: 4rem 4rem;
+ gap: 4rem;
flex-direction: column;
align-items: center;
overflow-y: scroll;
height: 60%;
}
}
+
&--selected {
- border: solid 1px #377cfc;
- border-radius: 4px;
+ border: solid 2px $color-green;
+ box-shadow: 0 1.2rem 1.8rem 0.8rem var(--shadow-menu);
}
- &__verification-status,
- &__verification-status--pending,
- &__verification-status--failed,
- &__verification-status--account_added,
- &__verification-status--poi_verified,
- &__verification-status--not_submitted,
- &__verification-status--hint {
- width: 100%;
- min-height: 2.4rem;
- display: flex;
-
- * {
- margin: auto;
- }
-
- &--pending {
- background-color: #ffad3a;
- border-radius: 0.5rem;
- }
-
- &--poi_verified {
- background: var(--text-status-info-blue);
- border-radius: 0.5rem;
- padding: 0.1rem;
- }
- &--account_added {
- background-color: #4bb4b3;
- border-radius: 0.5rem;
+ &__card {
+ &-content {
+ &-container {
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+ }
+ &-over-header {
+ background: var(--text-info-blue-background);
+ height: 4rem;
+ width: 100%;
+ padding: 0.5rem;
+ border-radius: 1.4rem 1.4rem 0 0;
+ &-blank {
+ height: 4rem;
+ border-radius: 1.4rem;
+ @include mobile {
+ height: 2rem;
+ }
+ }
+ }
+ &-footer {
+ width: 100%;
+ &-text {
+ background: var(--brand-secondary);
+ height: 4rem;
+ padding: 1rem;
+ border-radius: 0 0 1.4rem 1.4rem;
+ }
+ }
}
-
- &--failed {
- background-color: #ec3f3f;
- border-radius: 0.5rem;
+ &-flipped-container {
+ gap: 2rem;
+ padding: 4rem 2rem;
}
- &--not_submitted {
- background-color: var(--general-section-1);
- padding: 0.3rem;
- border-radius: 0.5rem;
+ &-section-container {
+ display: flex;
+ flex-direction: column;
+ gap: 1.2rem;
+ height: 100%;
+ margin: 0 2rem;
}
}
+
&__h2-header {
- margin: 1.4rem 0 2.4rem;
+ min-height: 5rem;
+ margin: 1rem 2rem;
+ @include mobile {
+ margin-bottom: 2rem;
+ min-height: auto;
+ }
}
+
&__footer-wrapper {
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
@include mobile {
+ min-height: auto;
background-color: var(--general-main-1);
width: 100%;
height: 100%;
position: sticky;
bottom: 0;
- max-height: 20rem;
z-index: 12;
}
- .dc-modal-footer {
- @include desktop {
- position: fixed;
- bottom: 0;
- width: 100%;
- }
+ }
+
+ &__footnotes-container {
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+ margin: 1rem;
+ @include desktop {
+ min-height: 6rem;
+ }
+ @include mobile {
+ gap: 0;
+ margin: 0;
}
}
+
&__footnote {
display: flex;
- flex-direction: column;
justify-content: center;
- margin: 1.6rem 2.4rem;
- padding: 0.8rem;
@include mobile {
margin: unset;
padding: 1.6rem 0.8rem;
box-shadow: 0px -4px 4px rgba(0, 0, 0, 0.08);
}
-
&--pending {
- color: #ffad3a;
+ color: $color-yellow;
}
}
&__jurisdiction-checkbox {
display: flex;
justify-content: center;
- margin-bottom: 2.4rem;
@include mobile {
padding: 0.8rem;
}
@@ -622,33 +633,157 @@
&__over-header {
background-color: #dfeaff;
- top: -1rem;
+ top: -2rem;
left: 1.4rem;
z-index: 10;
width: 90%;
height: 4rem;
position: absolute;
- border-radius: 4px;
+ border-radius: $BORDER_RADIUS * 2;
margin-bottom: 1rem;
-
+ border: 1px solid var(--text-info-blue);
& > p {
font-size: 16px;
text-align: center;
}
}
+}
- &__bullet-wrapper {
+.cfd-card {
+ &-perspective {
+ -webkit-perspective: 100rem;
+ perspective: 100rem;
+ @include mobile {
+ width: 100%;
+ }
+ }
+ &-container {
+ -webkit-transform-style: preserve-3d;
+ transform-style: preserve-3d;
+ -webkit-transition: all 0.25s ease-in;
+ transition: all 0.25s ease-in;
+ width: 28rem;
+ &.synthetic {
+ min-height: 48rem;
+ }
+ &.financial {
+ min-height: 54rem;
+ }
+ @include mobile {
+ height: 48rem;
+ width: 100%;
+ }
+ }
+ &-flipped {
+ -webkit-transform: rotateY(180deg);
+ transform: rotateY(180deg);
+ }
+ &-front,
+ &-back {
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-transform-style: preserve-3d;
+ transform-style: preserve-3d;
+ position: absolute;
+ top: 0;
+ left: 0;
+ }
+ &-front {
+ z-index: 2;
+ -webkit-transform: rotateY(0deg);
+ transform: rotateY(0deg);
+ }
+ &-back {
+ -webkit-transform: rotateY(-180deg);
+ transform: rotateY(-180deg);
+ }
+ &-section {
+ width: 100%;
display: flex;
- margin-bottom: 1rem;
-
- &--checkmark {
- margin-right: 1rem;
+ flex-direction: column;
+ gap: 0.8rem;
+ &-divider {
+ width: 100%;
+ border-bottom: 2px solid var(--border-divider);
+ }
+ &-title-indicator {
+ padding: 0.6rem 1.2rem;
+ border-radius: $BORDER_RADIUS;
+ &-icon-container {
+ display: flex;
+ gap: 0.5rem;
+ }
+ &__red-darker {
+ background: $color-red-8;
+ }
+ &__red-dark {
+ background: $color-red-9;
+ }
+ &__red-light {
+ background: $color-red-10;
+ }
+ &__yellow-dark {
+ background: $color-yellow-1;
+ }
+ &__yellow-light {
+ background: $color-yellow-2;
+ }
+ &__violet-dark {
+ background: $color-violet;
+ }
+ &__brown-dark {
+ background: $color-brown;
+ }
+ }
+ &-description-height {
+ @include desktop {
+ &-assets {
+ min-height: 3.4rem;
+ }
+ &-verifications,
+ &-regulator {
+ min-height: 5rem;
+ }
+ }
+ }
+ }
+ &-back-section {
+ &-items-container {
+ display: flex;
+ flex-direction: column;
+ gap: 1.2rem;
+ }
+ &-items-sub-container {
+ display: flex;
+ align-items: flex-start;
+ gap: 1rem;
+ }
+ &-back-button {
+ -webkit-transition: transform 0.25s linear;
+ transition: transform 0.25s linear;
+ }
+ &-text-icon-aligned {
+ margin-top: -0.3rem;
+ }
+ }
+ &-clickable-description-link {
+ color: var(--text-red);
+ &:hover {
+ text-decoration: underline;
+ }
+ }
+ &-title-container {
+ width: 100%;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ }
+ &-disabled {
+ pointer-events: none;
+ &-flat {
+ border: solid 1px var(--border-normal);
}
}
-}
-
-.cfd-jurisdiction-card--synthetic {
- padding: 2.4rem;
}
.cfd-modal--custom-exit {
diff --git a/packages/cfd/src/sass/cfd.scss b/packages/cfd/src/sass/cfd.scss
index ad444dec1b38..08c4e8b92ba0 100644
--- a/packages/cfd/src/sass/cfd.scss
+++ b/packages/cfd/src/sass/cfd.scss
@@ -400,7 +400,6 @@
}
.dc-modal__container_jurisdiction-modal {
- min-height: 664px;
.dc-modal-header {
border-bottom: 2px solid var(--general-section-1);
}
diff --git a/packages/components/src/components/icon/common/ic-back-button.svg b/packages/components/src/components/icon/common/ic-back-button.svg
new file mode 100644
index 000000000000..dbc1ed6a3205
--- /dev/null
+++ b/packages/components/src/components/icon/common/ic-back-button.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/components/src/components/icon/common/ic-document-number-verification-default.svg b/packages/components/src/components/icon/common/ic-document-number-verification-default.svg
new file mode 100644
index 000000000000..8435374bc956
--- /dev/null
+++ b/packages/components/src/components/icon/common/ic-document-number-verification-default.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/components/src/components/icon/common/ic-document-number-verification-failed.svg b/packages/components/src/components/icon/common/ic-document-number-verification-failed.svg
new file mode 100644
index 000000000000..334357727cc7
--- /dev/null
+++ b/packages/components/src/components/icon/common/ic-document-number-verification-failed.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/components/src/components/icon/common/ic-document-number-verification-pending.svg b/packages/components/src/components/icon/common/ic-document-number-verification-pending.svg
new file mode 100644
index 000000000000..27bd9da9a76d
--- /dev/null
+++ b/packages/components/src/components/icon/common/ic-document-number-verification-pending.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/components/src/components/icon/common/ic-document-number-verification-verified.svg b/packages/components/src/components/icon/common/ic-document-number-verification-verified.svg
new file mode 100644
index 000000000000..56891aa32891
--- /dev/null
+++ b/packages/components/src/components/icon/common/ic-document-number-verification-verified.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/components/src/components/icon/common/ic-document-number-verification.svg b/packages/components/src/components/icon/common/ic-document-number-verification.svg
new file mode 100644
index 000000000000..5a4e733557a0
--- /dev/null
+++ b/packages/components/src/components/icon/common/ic-document-number-verification.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/components/src/components/icon/common/ic-identity-document-verification-default.svg b/packages/components/src/components/icon/common/ic-identity-document-verification-default.svg
new file mode 100644
index 000000000000..d2ddae66cda2
--- /dev/null
+++ b/packages/components/src/components/icon/common/ic-identity-document-verification-default.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/components/src/components/icon/common/ic-identity-document-verification-failed.svg b/packages/components/src/components/icon/common/ic-identity-document-verification-failed.svg
new file mode 100644
index 000000000000..985d919274dc
--- /dev/null
+++ b/packages/components/src/components/icon/common/ic-identity-document-verification-failed.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/components/src/components/icon/common/ic-identity-document-verification-pending.svg b/packages/components/src/components/icon/common/ic-identity-document-verification-pending.svg
new file mode 100644
index 000000000000..d1d4e762b3cb
--- /dev/null
+++ b/packages/components/src/components/icon/common/ic-identity-document-verification-pending.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/components/src/components/icon/common/ic-identity-document-verification-verified.svg b/packages/components/src/components/icon/common/ic-identity-document-verification-verified.svg
new file mode 100644
index 000000000000..c2192579a966
--- /dev/null
+++ b/packages/components/src/components/icon/common/ic-identity-document-verification-verified.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/components/src/components/icon/common/ic-identity-document-verification.svg b/packages/components/src/components/icon/common/ic-identity-document-verification.svg
new file mode 100644
index 000000000000..77e05efd57ad
--- /dev/null
+++ b/packages/components/src/components/icon/common/ic-identity-document-verification.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/components/src/components/icon/common/ic-name-and-address-verification-default.svg b/packages/components/src/components/icon/common/ic-name-and-address-verification-default.svg
new file mode 100644
index 000000000000..7d1131c11aa2
--- /dev/null
+++ b/packages/components/src/components/icon/common/ic-name-and-address-verification-default.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/components/src/components/icon/common/ic-name-and-address-verification-failed.svg b/packages/components/src/components/icon/common/ic-name-and-address-verification-failed.svg
new file mode 100644
index 000000000000..a1b85a47dd89
--- /dev/null
+++ b/packages/components/src/components/icon/common/ic-name-and-address-verification-failed.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/components/src/components/icon/common/ic-name-and-address-verification-pending.svg b/packages/components/src/components/icon/common/ic-name-and-address-verification-pending.svg
new file mode 100644
index 000000000000..0f560f786135
--- /dev/null
+++ b/packages/components/src/components/icon/common/ic-name-and-address-verification-pending.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/components/src/components/icon/common/ic-name-and-address-verification-verified.svg b/packages/components/src/components/icon/common/ic-name-and-address-verification-verified.svg
new file mode 100644
index 000000000000..cbaff2d6ed7a
--- /dev/null
+++ b/packages/components/src/components/icon/common/ic-name-and-address-verification-verified.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/components/src/components/icon/common/ic-name-and-address-verification.svg b/packages/components/src/components/icon/common/ic-name-and-address-verification.svg
new file mode 100644
index 000000000000..2e17b0efa157
--- /dev/null
+++ b/packages/components/src/components/icon/common/ic-name-and-address-verification.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/components/src/components/icon/common/ic-not-applicable-verification-default.svg b/packages/components/src/components/icon/common/ic-not-applicable-verification-default.svg
new file mode 100644
index 000000000000..fd2f117edb9f
--- /dev/null
+++ b/packages/components/src/components/icon/common/ic-not-applicable-verification-default.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/components/src/components/icon/common/ic-selfie-verification-default.svg b/packages/components/src/components/icon/common/ic-selfie-verification-default.svg
new file mode 100644
index 000000000000..15593bc780c5
--- /dev/null
+++ b/packages/components/src/components/icon/common/ic-selfie-verification-default.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/components/src/components/icon/common/ic-selfie-verification-failed.svg b/packages/components/src/components/icon/common/ic-selfie-verification-failed.svg
new file mode 100644
index 000000000000..d6fbd043ce9a
--- /dev/null
+++ b/packages/components/src/components/icon/common/ic-selfie-verification-failed.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/components/src/components/icon/common/ic-selfie-verification-pending.svg b/packages/components/src/components/icon/common/ic-selfie-verification-pending.svg
new file mode 100644
index 000000000000..339a3086a89c
--- /dev/null
+++ b/packages/components/src/components/icon/common/ic-selfie-verification-pending.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/components/src/components/icon/common/ic-selfie-verification-verified.svg b/packages/components/src/components/icon/common/ic-selfie-verification-verified.svg
new file mode 100644
index 000000000000..8183216099a1
--- /dev/null
+++ b/packages/components/src/components/icon/common/ic-selfie-verification-verified.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/components/src/components/icon/common/ic-selfie-verification.svg b/packages/components/src/components/icon/common/ic-selfie-verification.svg
new file mode 100644
index 000000000000..39d2bbe8c782
--- /dev/null
+++ b/packages/components/src/components/icon/common/ic-selfie-verification.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/components/src/components/icon/common/ic-verification-status-green.svg b/packages/components/src/components/icon/common/ic-verification-status-green.svg
new file mode 100644
index 000000000000..dc5a246bb465
--- /dev/null
+++ b/packages/components/src/components/icon/common/ic-verification-status-green.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/components/src/components/icon/common/ic-verification-status-red.svg b/packages/components/src/components/icon/common/ic-verification-status-red.svg
new file mode 100644
index 000000000000..ea745e409fd3
--- /dev/null
+++ b/packages/components/src/components/icon/common/ic-verification-status-red.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/components/src/components/icon/common/ic-verification-status-yellow.svg b/packages/components/src/components/icon/common/ic-verification-status-yellow.svg
new file mode 100644
index 000000000000..5cca88db6d2d
--- /dev/null
+++ b/packages/components/src/components/icon/common/ic-verification-status-yellow.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/components/src/components/icon/icons.js b/packages/components/src/components/icon/icons.js
index c51f50ca4e17..d41741c7af82 100644
--- a/packages/components/src/components/icon/icons.js
+++ b/packages/components/src/components/icon/icons.js
@@ -274,6 +274,7 @@ import './common/ic-assessment.svg';
import './common/ic-astro-pay-dark.svg';
import './common/ic-astro-pay-light.svg';
import './common/ic-attachment.svg';
+import './common/ic-back-button.svg';
import './common/ic-bank-dashboard.svg';
import './common/ic-bank-transfer.svg';
import './common/ic-bank.svg';
@@ -340,6 +341,11 @@ import './common/ic-deriv.svg';
import './common/ic-desktop.svg';
import './common/ic-digits.svg';
import './common/ic-docs-submit.svg';
+import './common/ic-document-number-verification-default.svg';
+import './common/ic-document-number-verification-failed.svg';
+import './common/ic-document-number-verification-pending.svg';
+import './common/ic-document-number-verification-verified.svg';
+import './common/ic-document-number-verification.svg';
import './common/ic-dop.svg';
import './common/ic-download.svg';
import './common/ic-dp2p.svg';
@@ -385,6 +391,11 @@ import './common/ic-id-card-back.svg';
import './common/ic-id-card-front.svg';
import './common/ic-identity-card-dashboard.svg';
import './common/ic-identity-card.svg';
+import './common/ic-identity-document-verification-default.svg';
+import './common/ic-identity-document-verification-failed.svg';
+import './common/ic-identity-document-verification-pending.svg';
+import './common/ic-identity-document-verification-verified.svg';
+import './common/ic-identity-document-verification.svg';
import './common/ic-image.svg';
import './common/ic-info-blue.svg';
import './common/ic-info-outline.svg';
@@ -425,12 +436,18 @@ import './common/ic-minus.svg';
import './common/ic-mobile.svg';
import './common/ic-money-transfer.svg';
import './common/ic-multiplier.svg';
+import './common/ic-name-and-address-verification-default.svg';
+import './common/ic-name-and-address-verification-failed.svg';
+import './common/ic-name-and-address-verification-pending.svg';
+import './common/ic-name-and-address-verification-verified.svg';
+import './common/ic-name-and-address-verification.svg';
import './common/ic-neteller-dark.svg';
import './common/ic-neteller-light.svg';
import './common/ic-new-file.svg';
import './common/ic-no-ad.svg';
import './common/ic-no-data.svg';
import './common/ic-no-order.svg';
+import './common/ic-not-applicable-verification-default.svg';
import './common/ic-notification-clear.svg';
import './common/ic-notification.svg';
import './common/ic-online-naira.svg';
@@ -505,6 +522,11 @@ import './common/ic-save.svg';
import './common/ic-search.svg';
import './common/ic-security-and-privacy.svg';
import './common/ic-security.svg';
+import './common/ic-selfie-verification-default.svg';
+import './common/ic-selfie-verification-failed.svg';
+import './common/ic-selfie-verification-pending.svg';
+import './common/ic-selfie-verification-verified.svg';
+import './common/ic-selfie-verification.svg';
import './common/ic-selfie.svg';
import './common/ic-send-message.svg';
import './common/ic-skrill-dark.svg';
@@ -540,6 +562,9 @@ import './common/ic-user-blocked-outline.svg';
import './common/ic-user-outline.svg';
import './common/ic-user.svg';
import './common/ic-utility.svg';
+import './common/ic-verification-status-green.svg';
+import './common/ic-verification-status-red.svg';
+import './common/ic-verification-status-yellow.svg';
import './common/ic-verification-success.svg';
import './common/ic-verification.svg';
import './common/ic-visa-dark.svg';
diff --git a/packages/components/stories/icon/icons.js b/packages/components/stories/icon/icons.js
index 0424319c40e1..13b5fe64bd58 100644
--- a/packages/components/stories/icon/icons.js
+++ b/packages/components/stories/icon/icons.js
@@ -282,6 +282,7 @@ export const icons =
'IcAstroPayDark',
'IcAstroPayLight',
'IcAttachment',
+ 'IcBackButton',
'IcBankDashboard',
'IcBankTransfer',
'IcBank',
@@ -348,6 +349,11 @@ export const icons =
'IcDesktop',
'IcDigits',
'IcDocsSubmit',
+ 'IcDocumentNumberVerificationDefault',
+ 'IcDocumentNumberVerificationFailed',
+ 'IcDocumentNumberVerificationPending',
+ 'IcDocumentNumberVerificationVerified',
+ 'IcDocumentNumberVerification',
'IcDop',
'IcDownload',
'IcDp2p',
@@ -393,6 +399,11 @@ export const icons =
'IcIdCardFront',
'IcIdentityCardDashboard',
'IcIdentityCard',
+ 'IcIdentityDocumentVerificationDefault',
+ 'IcIdentityDocumentVerificationFailed',
+ 'IcIdentityDocumentVerificationPending',
+ 'IcIdentityDocumentVerificationVerified',
+ 'IcIdentityDocumentVerification',
'IcImage',
'IcInfoBlue',
'IcInfoOutline',
@@ -433,12 +444,18 @@ export const icons =
'IcMobile',
'IcMoneyTransfer',
'IcMultiplier',
+ 'IcNameAndAddressVerificationDefault',
+ 'IcNameAndAddressVerificationFailed',
+ 'IcNameAndAddressVerificationPending',
+ 'IcNameAndAddressVerificationVerified',
+ 'IcNameAndAddressVerification',
'IcNetellerDark',
'IcNetellerLight',
'IcNewFile',
'IcNoAd',
'IcNoData',
'IcNoOrder',
+ 'IcNotApplicableVerificationDefault',
'IcNotificationClear',
'IcNotification',
'IcOnlineNaira',
@@ -513,6 +530,11 @@ export const icons =
'IcSearch',
'IcSecurityAndPrivacy',
'IcSecurity',
+ 'IcSelfieVerificationDefault',
+ 'IcSelfieVerificationFailed',
+ 'IcSelfieVerificationPending',
+ 'IcSelfieVerificationVerified',
+ 'IcSelfieVerification',
'IcSelfie',
'IcSendMessage',
'IcSkrillDark',
@@ -548,6 +570,9 @@ export const icons =
'IcUserOutline',
'IcUser',
'IcUtility',
+ 'IcVerificationStatusGreen',
+ 'IcVerificationStatusRed',
+ 'IcVerificationStatusYellow',
'IcVerificationSuccess',
'IcVerification',
'IcVisaDark',
diff --git a/packages/shared/src/styles/constants.scss b/packages/shared/src/styles/constants.scss
index 2741931a769e..5aa78ff555b7 100644
--- a/packages/shared/src/styles/constants.scss
+++ b/packages/shared/src/styles/constants.scss
@@ -16,15 +16,21 @@ $color-black-6: #3e3e3e;
$color-black-7: #000000;
$color-black-8: #323738;
$color-black-9: #5c5c5c;
-$color-white: #ffffff;
-$color-red: #ff444f;
-$color-red-1: #ec3f3f;
-$color-red-2: #cc2e3d;
-$color-red-3: #a32430;
-$color-red-4: #d33636;
-$color-red-5: #eb3e48;
-$color-red-6: #ec3f3f29;
-$color-red-7: #ffe1e3;
+$color-blue: #377cfc;
+$color-blue-1: #0dc2e7;
+$color-blue-2: #2a3052;
+$color-blue-3: #0796e0;
+$color-blue-4: #0677af;
+$color-blue-5: #dfeaff;
+$color-blue-6: #92b8ff;
+$color-blue-7: #182130;
+$color-brown: #664407;
+$color-green: #85acb0;
+$color-green-1: #4bb4b3;
+$color-green-2: #3d9494;
+$color-green-3: #00a79e;
+$color-green-4: #008079;
+$color-green-5: #4bb4b329;
$color-grey: #c2c2c2;
$color-grey-1: #999999;
$color-grey-2: #f2f3f4;
@@ -38,20 +44,25 @@ $color_grey-9: #868686;
$color-grey-10: #919191;
$color-grey-11: #fafafa;
$color-grey-12: #f5f7fa;
-$color-green: #85acb0;
-$color-green-1: #4bb4b3;
-$color-green-2: #3d9494;
-$color-green-3: #00a79e;
-$color-green-4: #008079;
-$color-green-5: #4bb4b329;
+$color-grey-13: #2e2e2e;
$color-orange: #ff6444;
-$color-yellow: #ffad3a;
-$color-blue: #377cfc;
-$color-blue-1: #0dc2e7;
-$color-blue-2: #2a3052;
-$color-blue-3: #0796e0;
-$color-blue-4: #0677af;
$color-purple: #722fe4;
+$color-red: #ff444f;
+$color-red-1: #ec3f3f;
+$color-red-2: #cc2e3d;
+$color-red-3: #a32430;
+$color-red-4: #d33636;
+$color-red-5: #eb3e48;
+$color-red-6: #ec3f3f29;
+$color-red-7: #ffe1e3;
+$color-red-8: #661b20;
+$color-red-9: #b33037;
+$color-red-10: #ff444f;
+$color-violet: #4a3871;
+$color-white: #ffffff;
+$color-yellow: #ffad3a;
+$color-yellow-1: #b3760d;
+$color-yellow-2: #ffa912;
/* alpha colors */
$alpha-color-black-1: transparentize($color-black-7, 0.28);
diff --git a/packages/shared/src/styles/themes.scss b/packages/shared/src/styles/themes.scss
index 294262085f70..bb2fb2aa668d 100644
--- a/packages/shared/src/styles/themes.scss
+++ b/packages/shared/src/styles/themes.scss
@@ -34,6 +34,7 @@
--text-align-center: center;
// Brand primary colors
+ --brand-white: #{$color-white};
--brand-dark-grey: #{$color-black};
--brand-red-coral: #{$color-red};
--brand-orange: #{$color-orange};
@@ -89,6 +90,7 @@
--text-red: #{$color-red};
--text-blue: #{$color-blue-3};
--text-info-blue: #{$color-blue};
+ --text-info-blue-background: #{$color-blue-5};
--text-colored-background: #{$color-white};
--icon-light-background: #{$color-black-9};
--icon-dark-background: #{$color-white};
@@ -137,6 +139,7 @@
--border-hover-1: #{$color-black-9};
--border-active: var(--brand-secondary);
--border-disabled: #{$color-grey-3};
+ --border-divider: #{$color-grey-2};
// Fill
--fill-normal: #{$color-white};
--fill-normal-1: #{$color-grey};
@@ -217,6 +220,8 @@
--text-loss-danger: #{$color-red-2};
--text-red: #{$color-red};
--text-colored-background: #{$color-white};
+ --text-info-blue: #{$color-blue-6};
+ --text-info-blue-background: #{$color-blue-7};
--text-status-info-blue: #{$color-blue};
--text-hint: #{$color-grey};
--icon-light-background: #{$color-black-9};
@@ -263,6 +268,7 @@
--border-hover-1: #{$color-black-9};
--border-active: var(--brand-secondary);
--border-disabled: #{$color-black-4};
+ --border-divider: #{$color-grey-13};
// Fill
--fill-normal: #{$color-black};
--fill-normal-1: #{$color-black-1};
diff --git a/packages/shared/src/utils/constants/index.ts b/packages/shared/src/utils/constants/index.ts
index 4477b7bd5fdf..8482abf7811c 100644
--- a/packages/shared/src/utils/constants/index.ts
+++ b/packages/shared/src/utils/constants/index.ts
@@ -1,5 +1,6 @@
export * from './barriers';
export * from './contract';
export * from './content_flags';
+export * from './jurisdictions-config';
export * from './signup_fields';
export * from './error';
diff --git a/packages/shared/src/utils/constants/jurisdictions-config.ts b/packages/shared/src/utils/constants/jurisdictions-config.ts
new file mode 100644
index 000000000000..3030e044221d
--- /dev/null
+++ b/packages/shared/src/utils/constants/jurisdictions-config.ts
@@ -0,0 +1,7 @@
+export const Jurisdiction = Object.freeze({
+ SVG: 'svg',
+ BVI: 'bvi',
+ VANUATU: 'vanuatu',
+ LABUAN: 'labuan',
+ MALTA_INVEST: 'maltainvest',
+});