@@ -6,6 +6,8 @@ import Defaults from './defaults';
6
6
import { sortSubmarket , getAvailableUnderlyings } from '../../common/active_symbols' ;
7
7
import { getElementById } from '../../../_common/common_functions' ;
8
8
import { localize } from '../../../_common/localize' ;
9
+ import Client from '../../base/client' ;
10
+ import { State } from '../../../_common/storage' ;
9
11
10
12
function scrollToPosition ( element , to , duration ) {
11
13
const requestAnimationFrame = window . requestAnimationFrame ||
@@ -69,7 +71,9 @@ class Markets extends React.Component {
69
71
constructor ( props ) {
70
72
super ( props ) ;
71
73
let market_symbol = Defaults . get ( 'market' ) ;
72
-
74
+ let final_markets_arr ,
75
+ final_market_obj ;
76
+
73
77
const market_list = Symbols . markets ( ) ;
74
78
this . markets = getAvailableUnderlyings ( market_list ) ;
75
79
@@ -80,9 +84,19 @@ class Markets extends React.Component {
80
84
underlying_symbol = Object . keys ( this . markets [ market_symbol ] . submarkets [ submarket ] . symbols ) . sort ( ) [ 0 ] ;
81
85
}
82
86
const is_not_crypto = symbol => ! / ^ ( c r y | J D ) / i. test ( symbol ) ;
87
+ const is_synthetic = symbol => / ^ ( s y n t h e t i c ) / i. test ( symbol ) ;
88
+ const is_uk = State . getResponse ( 'authorize.country' ) === 'gb' ;
83
89
const market_arr = Object . entries ( this . markets ) . sort ( ( a , b ) => sortSubmarket ( a [ 0 ] , b [ 0 ] ) ) ;
84
- const non_crypto_markets_arr = market_arr . filter ( market => is_not_crypto ( market ) ) ;
85
- this . markets_all = non_crypto_markets_arr . slice ( ) ;
90
+ final_markets_arr = market_arr . filter ( market => is_not_crypto ( market ) ) ;
91
+ final_market_obj = Object . fromEntries ( final_markets_arr ) ;
92
+ if ( ( Client . isMalta ( ) || is_uk ) && Client . getAccountOfType ( 'virtual' ) ) {
93
+ final_markets_arr = market_arr . filter ( market => is_synthetic ( market ) ) ;
94
+ final_market_obj = Object . fromEntries ( final_markets_arr ) ;
95
+ market_symbol = Object . keys ( final_market_obj ) [ 0 ] ;
96
+ const submarket = Object . keys ( final_market_obj [ market_symbol ] . submarkets ) . sort ( sortSubmarket ) [ 0 ] ;
97
+ underlying_symbol = Object . keys ( final_market_obj [ market_symbol ] . submarkets [ submarket ] . symbols ) . sort ( ) [ 0 ] ;
98
+ }
99
+ this . markets_all = final_markets_arr . slice ( ) ;
86
100
if ( ! ( market_symbol in this . markets ) ) {
87
101
market_symbol = Object . keys ( this . markets ) . find ( m => this . markets [ m ] . submarkets [ market_symbol ] ) ;
88
102
Defaults . set ( 'market' , market_symbol ) ;
@@ -93,13 +107,13 @@ class Markets extends React.Component {
93
107
open : false ,
94
108
market : {
95
109
symbol : market_symbol ,
96
- name : this . markets [ market_symbol ] . name ,
110
+ name : final_market_obj [ market_symbol ] . name ,
97
111
} ,
98
112
underlying : {
99
113
symbol : underlying_symbol ,
100
114
name : this . underlyings [ underlying_symbol ] ,
101
115
} ,
102
- markets : non_crypto_markets_arr ,
116
+ markets : final_markets_arr ,
103
117
active_market : market_symbol ,
104
118
query : '' ,
105
119
open_dropdown_scroll_id : 0 ,
0 commit comments