Skip to content
This repository was archived by the owner on Feb 22, 2024. It is now read-only.

Commit 08ad540

Browse files
authored
Suisin/scam message warning for brazil binary (#7229)
* Binary Pop Up Warning Message * Updated Latest File Display for warning message pop up * Update File Location * Update icons and scss for popup * Update Logics for not displaying on New Sign Up Account * Update to a better naming and spacing * test * revert * rename is_at_brazil to is_brazil_client * Update ID and ClassName
1 parent 19eb522 commit 08ad540

File tree

9 files changed

+264
-34
lines changed

9 files changed

+264
-34
lines changed
Lines changed: 1 addition & 0 deletions
Loading
Lines changed: 1 addition & 0 deletions
Loading
Lines changed: 1 addition & 0 deletions
Loading

src/javascript/app/base/client.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,9 @@ const Client = (() => {
120120
if (response.logout !== 1) return;
121121
removeCookies('login', 'loginid', 'loginid_list', 'email', 'residence', 'settings'); // backward compatibility
122122
removeCookies('reality_check', 'affiliate_token', 'affiliate_tracking', 'onfido_token', 'hide_guide');
123+
// clear local storage
124+
localStorage.removeItem('read_scam_message');
125+
localStorage.removeItem('new_user_account');
123126
// clear elev.io session storage
124127
sessionStorage.removeItem('_elevaddon-6app');
125128
sessionStorage.removeItem('_elevaddon-6create');

src/javascript/app/base/page.js

Lines changed: 38 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,38 @@
1-
const Cookies = require('js-cookie');
2-
const moment = require('moment');
3-
const Client = require('./client');
4-
const Contents = require('./contents');
5-
const Header = require('./header');
6-
const Footer = require('./footer');
7-
const Menu = require('./menu');
8-
const BinarySocket = require('./socket');
9-
const TrafficSource = require('../common/traffic_source');
10-
const RealityCheck = require('../pages/user/reality_check/reality_check');
11-
const Login = require('../../_common/base/login');
12-
const ClientBase = require('../../_common/base/client_base');
13-
const elementInnerHtml = require('../../_common/common_functions').elementInnerHtml;
14-
const getElementById = require('../../_common/common_functions').getElementById;
15-
const Crowdin = require('../../_common/crowdin');
16-
const GTM = require('../../_common/gtm');
17-
const Language = require('../../_common/language');
18-
const PushNotification = require('../../_common/lib/push_notification');
19-
const localize = require('../../_common/localize').localize;
20-
const isMobile = require('../../_common/os_detect').isMobile;
21-
const LocalStore = require('../../_common/storage').LocalStore;
22-
const State = require('../../_common/storage').State;
23-
const scrollToTop = require('../../_common/scroll').scrollToTop;
24-
const toISOFormat = require('../../_common/string_util').toISOFormat;
25-
const Url = require('../../_common/url');
26-
const createElement = require('../../_common/utility').createElement;
27-
const isLoginPages = require('../../_common/utility').isLoginPages;
28-
const isProduction = require('../../config').isProduction;
29-
const ClosePopup = require('../common/game_close_popup');
30-
const EuClosePopup = require('../common/eu_close_popup');
31-
const EuCloseBanner = require('../common/eu_close_baner');
32-
const CloseBanner = require('../common/game_close_banner');
33-
const RedirectBanner = require('../common/redirect_banner');
34-
const DerivBanner = require('../common/deriv_banner');
1+
const Cookies = require('js-cookie');
2+
const moment = require('moment');
3+
const Client = require('./client');
4+
const Contents = require('./contents');
5+
const Header = require('./header');
6+
const Footer = require('./footer');
7+
const Menu = require('./menu');
8+
const BinarySocket = require('./socket');
9+
const TrafficSource = require('../common/traffic_source');
10+
const RealityCheck = require('../pages/user/reality_check/reality_check');
11+
const Login = require('../../_common/base/login');
12+
const ClientBase = require('../../_common/base/client_base');
13+
const elementInnerHtml = require('../../_common/common_functions').elementInnerHtml;
14+
const getElementById = require('../../_common/common_functions').getElementById;
15+
const Crowdin = require('../../_common/crowdin');
16+
const GTM = require('../../_common/gtm');
17+
const Language = require('../../_common/language');
18+
const PushNotification = require('../../_common/lib/push_notification');
19+
const localize = require('../../_common/localize').localize;
20+
const isMobile = require('../../_common/os_detect').isMobile;
21+
const LocalStore = require('../../_common/storage').LocalStore;
22+
const State = require('../../_common/storage').State;
23+
const scrollToTop = require('../../_common/scroll').scrollToTop;
24+
const toISOFormat = require('../../_common/string_util').toISOFormat;
25+
const Url = require('../../_common/url');
26+
const createElement = require('../../_common/utility').createElement;
27+
const isLoginPages = require('../../_common/utility').isLoginPages;
28+
const isProduction = require('../../config').isProduction;
29+
const WarningScamMessage = require('../pages/user/warning_scam_message');
30+
const ClosePopup = require('../common/game_close_popup');
31+
const EuClosePopup = require('../common/eu_close_popup');
32+
const EuCloseBanner = require('../common/eu_close_baner');
33+
const CloseBanner = require('../common/game_close_banner');
34+
const RedirectBanner = require('../common/redirect_banner');
35+
const DerivBanner = require('../common/deriv_banner');
3536
const { removeLoadingImage } = require('../../_common/utility');
3637
require('../../_common/lib/polyfills/array.includes');
3738
require('../../_common/lib/polyfills/string.includes');
@@ -128,13 +129,16 @@ const Page = (() => {
128129
}, 1000);
129130
RealityCheck.onLoad();
130131
Menu.init();
132+
const is_brazil_client = State.getResponse('website_status.clients_country') === 'br';
133+
const read_scam_message = localStorage.getItem('read_scam_message') || false;
131134
const is_uk_residence = (Client.get('residence') === 'gb' || State.getResponse('website_status.clients_country') === 'gb');
132135
const is_iom_client = (Client.get('residence') === 'im' || State.getResponse('website_status.clients_country') === 'im');
133136
const is_be_client = (Client.get('residence') === 'be' || State.getResponse('website_status.clients_country') === 'be') && Client.hasAccountType('gaming');
134137
const is_at_client = (Client.get('residence') === 'at' || State.getResponse('website_status.clients_country') === 'at') && Client.hasAccountType('gaming');
135138
const mlt_check = ClientBase.get('landing_company_shortcode') === 'malta';
136139
const mf_check = ClientBase.get('landing_company_shortcode') === 'maltainvest';
137140
const virtual_account = Client.get('landing_company_shortcode') === 'virtual';
141+
if (is_brazil_client && !read_scam_message) { WarningScamMessage.has_read_warning_scam_message(); }
138142
if (!is_iom_client || is_uk_residence && !Client.hasAccountType('gaming') || mf_check || mlt_check) RedirectBanner.loginOnLoad();
139143
if (is_uk_residence && Client.hasAccountType('gaming')) {
140144
CloseBanner.onLoad();
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
const getElementById = require('../../../_common/common_functions').getElementById;
2+
const BinarySocket = require('../../base/socket');
3+
const Client = require('../../base/client');
4+
const State = require('../../../_common/storage').State;
5+
6+
const WarningScamMessage = (()=>{
7+
const urlParams = new URLSearchParams(window.location.search);
8+
const actionParams = urlParams.get('action');
9+
let warning_scam_message, warning_scam_message_button, warning_scam_message_checkbox;
10+
11+
if (actionParams === 'signup') {
12+
localStorage.setItem('new_user_account', true);
13+
}
14+
15+
const has_read_warning_scam_message = () => {
16+
BinarySocket.wait('authorize', 'website_status').then(()=> {
17+
const is_logged_in = !!Client.isLoggedIn();
18+
const is_brazil = State.getResponse('website_status.clients_country') === 'br';
19+
const is_message_read = !!localStorage.getItem('read_scam_message');
20+
const is_new_account = !!localStorage.getItem('new_user_account');
21+
22+
if (is_logged_in && is_brazil && !is_message_read && !is_new_account) {
23+
warning_scam_message = getElementById('warning_scam_message');
24+
warning_scam_message_checkbox = getElementById('warning_scam_message_checkbox');
25+
}
26+
warning_scam_message.setVisibility(1);
27+
warning_scam_message_checkbox.addEventListener('change', acknowledgeMessage);
28+
});
29+
};
30+
31+
const acknowledgeMessage = () => {
32+
warning_scam_message_button = getElementById('warning_scam_message_button');
33+
if (warning_scam_message_button.classList.contains('button-disabled')) {
34+
warning_scam_message_button.classList.remove('button-disabled');
35+
} else {
36+
warning_scam_message_button.classList.add('button-disabled');
37+
}
38+
39+
warning_scam_message_button.addEventListener('click',closePopup);
40+
};
41+
42+
const closePopup = () => {
43+
localStorage.setItem('read_scam_message', true);
44+
warning_scam_message.setVisibility(0);
45+
};
46+
47+
return { has_read_warning_scam_message, acknowledgeMessage, closePopup };
48+
})();
49+
50+
module.exports = WarningScamMessage;

0 commit comments

Comments
 (0)