From 5899a81490427da39e159bedf9b5081a7e10510e Mon Sep 17 00:00:00 2001 From: Sandeep Date: Tue, 29 Mar 2022 11:06:48 +0800 Subject: [PATCH 1/2] re: dataLayer is not defined - added a check on GTM --- src/botPage/bot/TradeEngine/Purchase.js | 2 +- src/botPage/view/View.js | 4 ++-- src/botPage/view/blockly/customBlockly.js | 2 +- src/botPage/view/blockly/index.js | 4 ++-- src/botPage/view/index.js | 2 +- src/common/appId.js | 2 +- src/common/elevio.js | 6 +++--- src/indexPage/index.js | 2 +- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/botPage/bot/TradeEngine/Purchase.js b/src/botPage/bot/TradeEngine/Purchase.js index 85f663059b..ae67de9959 100644 --- a/src/botPage/bot/TradeEngine/Purchase.js +++ b/src/botPage/bot/TradeEngine/Purchase.js @@ -21,7 +21,7 @@ export default Engine => // Don't unnecessarily send a forget request for a purchased contract. this.data.proposals = this.data.proposals.filter(p => p.id !== response.echo_req.buy); const { buy } = response; - GTM.pushDataLayer({ event: 'bot_purchase', buy_price: proposal.ask_price }); + GTM?.pushDataLayer?.({ event: 'bot_purchase', buy_price: proposal.ask_price }); contractStatus({ id : 'contract.purchase_recieved', diff --git a/src/botPage/view/View.js b/src/botPage/view/View.js index b9dc59dadc..711bcbc968 100644 --- a/src/botPage/view/View.js +++ b/src/botPage/view/View.js @@ -444,7 +444,7 @@ export default class View { this.stop(); Elevio.logoutUser(); googleDriveUtil.logout(); - GTM.setVisitorId(); + GTM?.setVisitorId?.(); removeTokens(); }) .catch(() => {}); @@ -688,7 +688,7 @@ export default class View { .then(() => { this.stop(); Elevio.logoutUser(); - GTM.setVisitorId(); + GTM?.setVisitorId?.(); const activeToken = $(e.currentTarget).attr('value'); const tokenList = getTokenList(); setStorage('tokenList', ''); diff --git a/src/botPage/view/blockly/customBlockly.js b/src/botPage/view/blockly/customBlockly.js index 083d22193a..13bc0ef6c5 100644 --- a/src/botPage/view/blockly/customBlockly.js +++ b/src/botPage/view/blockly/customBlockly.js @@ -348,7 +348,7 @@ Blockly.Input.prototype.attachShadowBlock = function(value, name, shadowBlockTyp Blockly.Toolbox.TreeNode.prototype.onClick_ = function(_e) { // eslint-disable-next-line no-underscore-dangle const blocklyCategoryName = translateLangToLang(_e.target.innerText, getLanguage(), 'en'); - GTM.pushDataLayer({ event: 'Click Block Category', blocklyCategoryName }); + GTM?.pushDataLayer?.({ event: 'Click Block Category', blocklyCategoryName }); // Expand icon. if (this.hasChildren() && this.isUserCollapsible_) { diff --git a/src/botPage/view/blockly/index.js b/src/botPage/view/blockly/index.js index 2cf51c91eb..94695623a0 100644 --- a/src/botPage/view/blockly/index.js +++ b/src/botPage/view/blockly/index.js @@ -353,7 +353,7 @@ export default class _Blockly { event.ids.forEach(id => { const block = workspace.getBlockById(id); if (block) { - GTM.pushDataLayer({ + GTM?.pushDataLayer?.({ event : 'Block Event', blockEvent: event.type, blockType : block.type, @@ -364,7 +364,7 @@ export default class _Blockly { const dom = Blockly.Xml.textToDom(`${event.oldXml.outerHTML}`); const blockNodes = dom.getElementsByTagName('block'); Array.from(blockNodes).forEach(blockNode => { - GTM.pushDataLayer({ + GTM?.pushDataLayer?.({ event : 'Block Event', blockEvent: event.type, blockType : blockNode.getAttribute('type'), diff --git a/src/botPage/view/index.js b/src/botPage/view/index.js index c8b45964d8..61bb3a06ad 100644 --- a/src/botPage/view/index.js +++ b/src/botPage/view/index.js @@ -31,7 +31,7 @@ view.initPromise.then(() => { $('.barspinner').hide(); window.dispatchEvent(new Event('resize')); Elevio.init(); - GTM.init(); + GTM?.init?.(); trackJs.configure({ userId: $('.account-id') .first() diff --git a/src/common/appId.js b/src/common/appId.js index 63f5b42cba..dade80a665 100644 --- a/src/common/appId.js +++ b/src/common/appId.js @@ -134,7 +134,7 @@ export async function addTokenIfValid(token, tokenObjectList) { } catch (e) { removeToken(tokenObjectList[0].token); Elevio.logoutUser(); - GTM.setVisitorId(); + GTM?.setVisitorId?.(); throw e; } return api.disconnect(); diff --git a/src/common/elevio.js b/src/common/elevio.js index 54f20a380e..58f1c03129 100644 --- a/src/common/elevio.js +++ b/src/common/elevio.js @@ -55,7 +55,7 @@ const Elevio = (() => { // eslint-disable-next-line no-underscore-dangle window._elev.on('load', elev => { - GTM.pushDataLayer({ event: 'elevio_widget_load' }); + GTM?.pushDataLayer?.({ event: 'elevio_widget_load' }); const availableLanguages = ['en', 'es', 'id', 'pt', 'ru']; const currentLanguage = getLanguage(); if (availableLanguages.includes(currentLanguage)) { @@ -81,11 +81,11 @@ const Elevio = (() => { const addEventListenerGTM = () => { window._elev.on('widget:opened', () => { // eslint-disable-line no-underscore-dangle - GTM.pushDataLayer({ event: 'elevio_widget_opened', is_elevio: true }); + GTM?.pushDataLayer?.({ event: 'elevio_widget_opened', is_elevio: true }); }); window._elev.on('page:view', () => { // eslint-disable-line no-underscore-dangle - GTM.pushDataLayer({ event: 'elevio_page_views', is_elevio: true }); + GTM?.pushDataLayer?.({ event: 'elevio_page_views', is_elevio: true }); }); }; diff --git a/src/indexPage/index.js b/src/indexPage/index.js index 44da8fb6dd..5d37fa0d3a 100644 --- a/src/indexPage/index.js +++ b/src/indexPage/index.js @@ -32,7 +32,7 @@ const loginCheck = () => { $('.show-on-load').show(); $('.barspinner').hide(); renderElements(); - GTM.init(); + GTM?.init?.(); }); } }; From af1346d9201dda7b521fc0eb60651584a43b0048 Mon Sep 17 00:00:00 2001 From: Sandeep Date: Tue, 29 Mar 2022 11:32:14 +0800 Subject: [PATCH 2/2] Resolved eslint errors and warnings --- src/botPage/bot/TradeEngine/Purchase.js | 2 ++ src/botPage/view/View.js | 4 ++++ src/botPage/view/blockly/customBlockly.js | 2 ++ src/botPage/view/blockly/index.js | 2 ++ src/botPage/view/blockly/utils.js | 1 + src/botPage/view/index.js | 2 ++ src/common/appId.js | 1 + src/common/elevio.js | 23 +++++++++++------------ src/common/i18n.js | 1 + src/common/utils/tools.js | 2 ++ src/indexPage/index.js | 1 + 11 files changed, 29 insertions(+), 12 deletions(-) diff --git a/src/botPage/bot/TradeEngine/Purchase.js b/src/botPage/bot/TradeEngine/Purchase.js index ae67de9959..c643dba66c 100644 --- a/src/botPage/bot/TradeEngine/Purchase.js +++ b/src/botPage/bot/TradeEngine/Purchase.js @@ -21,6 +21,8 @@ export default Engine => // Don't unnecessarily send a forget request for a purchased contract. this.data.proposals = this.data.proposals.filter(p => p.id !== response.echo_req.buy); const { buy } = response; + + /* eslint-disable-next-line no-unused-expressions */ GTM?.pushDataLayer?.({ event: 'bot_purchase', buy_price: proposal.ask_price }); contractStatus({ diff --git a/src/botPage/view/View.js b/src/botPage/view/View.js index 711bcbc968..4072cfafa8 100644 --- a/src/botPage/view/View.js +++ b/src/botPage/view/View.js @@ -444,6 +444,8 @@ export default class View { this.stop(); Elevio.logoutUser(); googleDriveUtil.logout(); + + /* eslint-disable-next-line no-unused-expressions */ GTM?.setVisitorId?.(); removeTokens(); }) @@ -688,6 +690,8 @@ export default class View { .then(() => { this.stop(); Elevio.logoutUser(); + + /* eslint-disable-next-line no-unused-expressions */ GTM?.setVisitorId?.(); const activeToken = $(e.currentTarget).attr('value'); const tokenList = getTokenList(); diff --git a/src/botPage/view/blockly/customBlockly.js b/src/botPage/view/blockly/customBlockly.js index 13bc0ef6c5..d0531f7844 100644 --- a/src/botPage/view/blockly/customBlockly.js +++ b/src/botPage/view/blockly/customBlockly.js @@ -348,6 +348,8 @@ Blockly.Input.prototype.attachShadowBlock = function(value, name, shadowBlockTyp Blockly.Toolbox.TreeNode.prototype.onClick_ = function(_e) { // eslint-disable-next-line no-underscore-dangle const blocklyCategoryName = translateLangToLang(_e.target.innerText, getLanguage(), 'en'); + + /* eslint-disable-next-line no-unused-expressions */ GTM?.pushDataLayer?.({ event: 'Click Block Category', blocklyCategoryName }); // Expand icon. diff --git a/src/botPage/view/blockly/index.js b/src/botPage/view/blockly/index.js index 94695623a0..c1c065ad63 100644 --- a/src/botPage/view/blockly/index.js +++ b/src/botPage/view/blockly/index.js @@ -353,6 +353,7 @@ export default class _Blockly { event.ids.forEach(id => { const block = workspace.getBlockById(id); if (block) { + /* eslint-disable-next-line no-unused-expressions */ GTM?.pushDataLayer?.({ event : 'Block Event', blockEvent: event.type, @@ -364,6 +365,7 @@ export default class _Blockly { const dom = Blockly.Xml.textToDom(`${event.oldXml.outerHTML}`); const blockNodes = dom.getElementsByTagName('block'); Array.from(blockNodes).forEach(blockNode => { + /* eslint-disable-next-line no-unused-expressions */ GTM?.pushDataLayer?.({ event : 'Block Event', blockEvent: event.type, diff --git a/src/botPage/view/blockly/utils.js b/src/botPage/view/blockly/utils.js index 78c3b2d253..3c1a4883bd 100644 --- a/src/botPage/view/blockly/utils.js +++ b/src/botPage/view/blockly/utils.js @@ -220,6 +220,7 @@ export const getMandatoryBlocks = () => config.mandatoryBlocks.map(type => getBl export const getMandatoryMainBlocks = () => config.mandatoryMainBlocks.map(type => getBlockByType(type)).filter(b => b); export const hasChildOfType = (block, childType) => + /* eslint-disable-next-line no-underscore-dangle */ block.childBlocks_.find(child => child.type === childType || hasChildOfType(child, childType)); export const getMissingBlocksTypes = () => { diff --git a/src/botPage/view/index.js b/src/botPage/view/index.js index 61bb3a06ad..13d32f8e1c 100644 --- a/src/botPage/view/index.js +++ b/src/botPage/view/index.js @@ -31,6 +31,8 @@ view.initPromise.then(() => { $('.barspinner').hide(); window.dispatchEvent(new Event('resize')); Elevio.init(); + + /* eslint-disable-next-line no-unused-expressions */ GTM?.init?.(); trackJs.configure({ userId: $('.account-id') diff --git a/src/common/appId.js b/src/common/appId.js index dade80a665..f792c15a63 100644 --- a/src/common/appId.js +++ b/src/common/appId.js @@ -134,6 +134,7 @@ export async function addTokenIfValid(token, tokenObjectList) { } catch (e) { removeToken(tokenObjectList[0].token); Elevio.logoutUser(); + /* eslint-disable-next-line no-unused-expressions */ GTM?.setVisitorId?.(); throw e; } diff --git a/src/common/elevio.js b/src/common/elevio.js index 58f1c03129..fc2f997af8 100644 --- a/src/common/elevio.js +++ b/src/common/elevio.js @@ -1,3 +1,4 @@ +/* eslint-disable no-underscore-dangle */ import { generateLiveApiInstance } from './appId'; // import { getLanguage } from '../common/lang'; import { getTokenList } from './utils/storageManager'; @@ -21,8 +22,8 @@ const Elevio = (() => { }; const injectElevio = (isOpen = false) => { - window._elev = {}; // eslint-disable-line no-underscore-dangle - window._elev.account_id = accountId; // eslint-disable-line no-underscore-dangle + window._elev = {}; + window._elev.account_id = accountId; const script = document.createElement('script'); script.type = 'text/javascript'; @@ -31,30 +32,28 @@ const Elevio = (() => { script.id = 'loaded-elevio-script'; document.body.appendChild(script); - window._elev.q = []; // eslint-disable-line no-underscore-dangle + window._elev.q = []; window._elev.on = (z, y) => { - // eslint-disable-line no-underscore-dangle - window._elev.q.push([z, y]); // eslint-disable-line no-underscore-dangle + window._elev.q.push([z, y]); }; script.onload = () => loadElevio(isOpen); }; const loadElevio = (isOpen = false) => { - if (!window._elev) return; // eslint-disable-line no-underscore-dangle + if (!window._elev) return; - // eslint-disable-next-line no-underscore-dangle window._elev.on('widget:opened', () => { if (localStorage.getItem('seenWhatsBinaryBot')) { - window._elev.open(); // eslint-disable-line no-underscore-dangle + window._elev.open(); } else { localStorage.setItem('seenWhatsBinaryBot', true); - window._elev.openArticle(90); // eslint-disable-line no-underscore-dangle + window._elev.openArticle(90); } }); - // eslint-disable-next-line no-underscore-dangle window._elev.on('load', elev => { + /* eslint-disable-next-line no-unused-expressions */ GTM?.pushDataLayer?.({ event: 'elevio_widget_load' }); const availableLanguages = ['en', 'es', 'id', 'pt', 'ru']; const currentLanguage = getLanguage(); @@ -80,11 +79,11 @@ const Elevio = (() => { const addEventListenerGTM = () => { window._elev.on('widget:opened', () => { - // eslint-disable-line no-underscore-dangle + /* eslint-disable-next-line no-unused-expressions */ GTM?.pushDataLayer?.({ event: 'elevio_widget_opened', is_elevio: true }); }); window._elev.on('page:view', () => { - // eslint-disable-line no-underscore-dangle + /* eslint-disable-next-line no-unused-expressions */ GTM?.pushDataLayer?.({ event: 'elevio_page_views', is_elevio: true }); }); }; diff --git a/src/common/i18n.js b/src/common/i18n.js index eacfd2e844..76466896b0 100644 --- a/src/common/i18n.js +++ b/src/common/i18n.js @@ -45,6 +45,7 @@ export const translate = (input, params = []) => { let translatedString = i18nTranslate(stringToBeTranslated); params.forEach((replacement, index) => { if (translatedString && typeof translatedString === 'string') { + /* eslint-disable-next-line no-useless-escape */ translatedString = translatedString.replaceAll(`\{\$${index}\}`, replacement); } }); diff --git a/src/common/utils/tools.js b/src/common/utils/tools.js index 9f21d9df2d..db284d3e7a 100644 --- a/src/common/utils/tools.js +++ b/src/common/utils/tools.js @@ -122,5 +122,7 @@ export const loadExternalScript = (src, async = true, defer = true) => export const errLogger = (err, msg) => { const errStr = JSON.stringify(err); const errMsg = `${msg} - Error: ${errStr}`; + + /* eslint-disable-next-line */ console.warn(errMsg); }; diff --git a/src/indexPage/index.js b/src/indexPage/index.js index 5d37fa0d3a..7a56ec432d 100644 --- a/src/indexPage/index.js +++ b/src/indexPage/index.js @@ -32,6 +32,7 @@ const loginCheck = () => { $('.show-on-load').show(); $('.barspinner').hide(); renderElements(); + /* eslint-disable-next-line no-unused-expressions */ GTM?.init?.(); }); }