From a8a7c9f0139d0f659854007693b799d2c4b1e01b Mon Sep 17 00:00:00 2001 From: mayuran-deriv Date: Thu, 10 Oct 2024 16:03:03 +0400 Subject: [PATCH 1/4] fix: svg change color --- .../src/pages/bot-builder/bot-builder.tsx | 17 +++++++++++++++-- .../common/static_images/arrow-down-white.svg | 1 + .../images/common/static_images/arrow-down.svg | 1 + 3 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 packages/core/src/public/images/common/static_images/arrow-down-white.svg create mode 100644 packages/core/src/public/images/common/static_images/arrow-down.svg diff --git a/packages/bot-web-ui/src/pages/bot-builder/bot-builder.tsx b/packages/bot-web-ui/src/pages/bot-builder/bot-builder.tsx index f93baf0768c7..0599322b3d4b 100644 --- a/packages/bot-web-ui/src/pages/bot-builder/bot-builder.tsx +++ b/packages/bot-web-ui/src/pages/bot-builder/bot-builder.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useEffect } from 'react'; import classNames from 'classnames'; import { observer, useStore } from '@deriv/stores'; import { localize } from '@deriv/translations'; @@ -11,6 +11,8 @@ import SaveModal from '../dashboard/bot-list/save-modal/save-modal'; import BotBuilderTourHandler from '../tutorials/dbot-tours/bot-builder-tour'; import QuickStrategy1 from './quick-strategy'; import WorkspaceWrapper from './workspace-wrapper'; +import { isSafari } from '@deriv/shared'; +import { getImageLocation } from '../../public-path'; const BotBuilder = observer(() => { const { ui } = useStore(); @@ -21,7 +23,7 @@ const BotBuilder = observer(() => { const { is_loading } = blockly_store; const is_blockly_listener_registered = React.useRef(false); const is_blockly_delete_listener_registered = React.useRef(false); - const { is_desktop } = ui; + const { is_desktop, is_dark_mode_on } = ui; const { onMount, onUnmount } = app; const el_ref = React.useRef(null); let deleted_block_id: null | string = null; @@ -100,6 +102,17 @@ const BotBuilder = observer(() => { }, }); }; + useEffect(() => { + setTimeout(() => { + if (isSafari()) { + const images: NodeListOf = document.querySelectorAll('.blocklyEditableText image'); + images.forEach((img: SVGImageElement) => { + const newIconUrl = getImageLocation(is_dark_mode_on ? 'arrow-down-white.svg' : 'arrow-down.svg'); + img?.setAttributeNS?.('http://www.w3.org/1999/xlink', 'xlink:href', newIconUrl); + }); + } + }, 100); + }, [is_dark_mode_on]); return ( <> diff --git a/packages/core/src/public/images/common/static_images/arrow-down-white.svg b/packages/core/src/public/images/common/static_images/arrow-down-white.svg new file mode 100644 index 000000000000..4f474cf4b8a5 --- /dev/null +++ b/packages/core/src/public/images/common/static_images/arrow-down-white.svg @@ -0,0 +1 @@ +dropdown-arrow \ No newline at end of file diff --git a/packages/core/src/public/images/common/static_images/arrow-down.svg b/packages/core/src/public/images/common/static_images/arrow-down.svg new file mode 100644 index 000000000000..7619d38402cf --- /dev/null +++ b/packages/core/src/public/images/common/static_images/arrow-down.svg @@ -0,0 +1 @@ +dropdown-arrow \ No newline at end of file From c21f226c3cfcdd727ad7dd75248eef096cf6a47a Mon Sep 17 00:00:00 2001 From: mayuran-deriv Date: Fri, 11 Oct 2024 17:52:59 +0400 Subject: [PATCH 2/4] fix: WIP --- .../src/assets/images}/arrow-down-white.svg | 0 .../src/assets/images}/arrow-down.svg | 0 .../blocks/Advanced/List/lists_create_with.js | 9 +++++++-- .../scratch/blocks/Advanced/List/lists_indexOf.js | 5 ++++- .../src/scratch/blocks/Advanced/List/lists_sort.js | 6 +++++- .../Advanced/Loops/controls_flow_statements.js | 5 ++++- .../scratch/blocks/Advanced/Loops/controls_for.js | 5 ++++- .../blocks/Advanced/Loops/controls_forEach.js | 5 ++++- .../blocks/Advanced/Loops/controls_whileUntil.js | 5 ++++- .../blocks/Binary/Before Purchase/purchase.js | 3 ++- .../src/scratch/blocks/Binary/Tools/Misc/console.js | 5 ++++- .../src/scratch/blocks/Binary/Tools/Misc/notify.js | 6 +++++- .../trade_definition_candleinterval.js | 3 ++- .../trade_definition_contracttype.js | 3 ++- .../Trade Definition/trade_definition_market.js | 5 ++++- .../trade_definition_tradeoptions.js | 8 +++++++- .../src/scratch/blocks/Logic/logic_boolean.js | 5 ++++- .../src/scratch/blocks/Logic/logic_compare.js | 5 ++++- .../src/scratch/blocks/Logic/logic_operation.js | 5 ++++- .../src/scratch/blocks/Math/math_arithmetic.js | 5 ++++- .../src/scratch/blocks/Math/math_change.js | 5 ++++- .../src/scratch/blocks/Math/math_constant.js | 5 ++++- .../src/scratch/blocks/Math/math_single.js | 5 ++++- .../src/scratch/blocks/Math/math_trig.js | 5 ++++- .../src/scratch/blocks/Text/text_append.js | 5 ++++- .../src/scratch/blocks/Text/text_changeCase.js | 5 ++++- .../src/scratch/blocks/Text/text_charAt.js | 5 ++++- .../src/scratch/blocks/Text/text_getSubstring.js | 6 +++++- .../src/scratch/blocks/Text/text_indexOf.js | 5 ++++- .../src/scratch/blocks/Text/text_prompt_ext.js | 5 ++++- .../src/scratch/blocks/Text/text_trim.js | 5 ++++- packages/bot-skeleton/src/scratch/dbot.js | 9 ++++++++- packages/bot-skeleton/src/scratch/utils/index.js | 13 +++++++++++++ .../src/pages/bot-builder/bot-builder.tsx | 11 ----------- 34 files changed, 140 insertions(+), 42 deletions(-) rename packages/{core/src/public/images/common/static_images => bot-skeleton/src/assets/images}/arrow-down-white.svg (100%) rename packages/{core/src/public/images/common/static_images => bot-skeleton/src/assets/images}/arrow-down.svg (100%) diff --git a/packages/core/src/public/images/common/static_images/arrow-down-white.svg b/packages/bot-skeleton/src/assets/images/arrow-down-white.svg similarity index 100% rename from packages/core/src/public/images/common/static_images/arrow-down-white.svg rename to packages/bot-skeleton/src/assets/images/arrow-down-white.svg diff --git a/packages/core/src/public/images/common/static_images/arrow-down.svg b/packages/bot-skeleton/src/assets/images/arrow-down.svg similarity index 100% rename from packages/core/src/public/images/common/static_images/arrow-down.svg rename to packages/bot-skeleton/src/assets/images/arrow-down.svg diff --git a/packages/bot-skeleton/src/scratch/blocks/Advanced/List/lists_create_with.js b/packages/bot-skeleton/src/scratch/blocks/Advanced/List/lists_create_with.js index 46dc8f832666..56ba9d8a60b1 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Advanced/List/lists_create_with.js +++ b/packages/bot-skeleton/src/scratch/blocks/Advanced/List/lists_create_with.js @@ -1,6 +1,11 @@ import { localize } from '@deriv/translations'; import { plusIconDark } from '../../images'; -import { runIrreversibleEvents, runGroupedEvents, modifyContextMenu } from '../../../utils'; +import { + runIrreversibleEvents, + runGroupedEvents, + modifyContextMenu, + replaceDropdownIconsForSafari, +} from '../../../utils'; Blockly.Blocks.lists_create_with = { protected_statements: ['STACK'], @@ -61,10 +66,10 @@ Blockly.Blocks.lists_create_with = { }); }, onchange(event) { + replaceDropdownIconsForSafari(this, 'VARIABLE'); if (!this.workspace || Blockly.derivWorkspace.isFlyoutVisible || this.workspace.isDragging()) { return; } - if (event.type === Blockly.Events.BLOCK_DRAG && !event.isStart) { // Only allow "text_statement" type blocks const blocks_in_stack = this.getBlocksInStatement('STACK'); diff --git a/packages/bot-skeleton/src/scratch/blocks/Advanced/List/lists_indexOf.js b/packages/bot-skeleton/src/scratch/blocks/Advanced/List/lists_indexOf.js index 2c470fe65abe..1db0bfcb8557 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Advanced/List/lists_indexOf.js +++ b/packages/bot-skeleton/src/scratch/blocks/Advanced/List/lists_indexOf.js @@ -1,5 +1,5 @@ import { localize } from '@deriv/translations'; -import { modifyContextMenu } from '../../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../../utils'; Blockly.Blocks.lists_indexOf = { init() { @@ -49,6 +49,9 @@ Blockly.Blocks.lists_indexOf = { description: localize('This block gives you the position of an item in a given list.'), }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'END'); + }, getRequiredValueInputs() { return { VALUE: null, diff --git a/packages/bot-skeleton/src/scratch/blocks/Advanced/List/lists_sort.js b/packages/bot-skeleton/src/scratch/blocks/Advanced/List/lists_sort.js index 2636c36b4223..fdac9c45b0e6 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Advanced/List/lists_sort.js +++ b/packages/bot-skeleton/src/scratch/blocks/Advanced/List/lists_sort.js @@ -1,5 +1,5 @@ import { localize } from '@deriv/translations'; -import { modifyContextMenu } from '../../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../../utils'; Blockly.Blocks.lists_sort = { init() { @@ -52,6 +52,10 @@ Blockly.Blocks.lists_sort = { ), }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'TYPE'); + replaceDropdownIconsForSafari(this, 'DIRECTION'); + }, getRequiredValueInputs() { return { LIST: null, diff --git a/packages/bot-skeleton/src/scratch/blocks/Advanced/Loops/controls_flow_statements.js b/packages/bot-skeleton/src/scratch/blocks/Advanced/Loops/controls_flow_statements.js index a4558c45ebc1..66840712b36f 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Advanced/Loops/controls_flow_statements.js +++ b/packages/bot-skeleton/src/scratch/blocks/Advanced/Loops/controls_flow_statements.js @@ -1,5 +1,5 @@ import { localize } from '@deriv/translations'; -import { modifyContextMenu } from '../../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../../utils'; Blockly.Blocks.controls_flow_statements = { init() { @@ -41,6 +41,9 @@ Blockly.Blocks.controls_flow_statements = { customContextMenu(menu) { modifyContextMenu(menu); }, + onchange() { + replaceDropdownIconsForSafari(this, 'FLOW'); + }, }; Blockly.JavaScript.javascriptGenerator.forBlock.controls_flow_statements = block => { diff --git a/packages/bot-skeleton/src/scratch/blocks/Advanced/Loops/controls_for.js b/packages/bot-skeleton/src/scratch/blocks/Advanced/Loops/controls_for.js index 795166528c09..7d7621e70e9a 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Advanced/Loops/controls_for.js +++ b/packages/bot-skeleton/src/scratch/blocks/Advanced/Loops/controls_for.js @@ -1,5 +1,5 @@ import { localize } from '@deriv/translations'; -import { modifyContextMenu } from '../../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../../utils'; Blockly.Blocks.controls_for = { init() { @@ -65,6 +65,9 @@ Blockly.Blocks.controls_for = { ), }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'VAR'); + }, getRequiredValueInputs() { return { FROM: null, diff --git a/packages/bot-skeleton/src/scratch/blocks/Advanced/Loops/controls_forEach.js b/packages/bot-skeleton/src/scratch/blocks/Advanced/Loops/controls_forEach.js index aed2c690b199..cefd9f5cc721 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Advanced/Loops/controls_forEach.js +++ b/packages/bot-skeleton/src/scratch/blocks/Advanced/Loops/controls_forEach.js @@ -1,5 +1,5 @@ import { localize } from '@deriv/translations'; -import { modifyContextMenu } from '../../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../../utils'; Blockly.Blocks.controls_forEach = { init() { @@ -47,6 +47,9 @@ Blockly.Blocks.controls_forEach = { ), }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'VAR'); + }, getRequiredValueInputs() { return { LIST: null, diff --git a/packages/bot-skeleton/src/scratch/blocks/Advanced/Loops/controls_whileUntil.js b/packages/bot-skeleton/src/scratch/blocks/Advanced/Loops/controls_whileUntil.js index f7f8df6a6166..8f0b70cb316a 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Advanced/Loops/controls_whileUntil.js +++ b/packages/bot-skeleton/src/scratch/blocks/Advanced/Loops/controls_whileUntil.js @@ -1,5 +1,5 @@ import { localize } from '@deriv/translations'; -import { modifyContextMenu } from '../../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../../utils'; Blockly.Blocks.controls_whileUntil = { init() { @@ -46,6 +46,9 @@ Blockly.Blocks.controls_whileUntil = { description: localize('This block repeats instructions as long as a given condition is true.'), }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'MODE'); + }, getRequiredValueInputs() { return { BOOL: null, diff --git a/packages/bot-skeleton/src/scratch/blocks/Binary/Before Purchase/purchase.js b/packages/bot-skeleton/src/scratch/blocks/Binary/Before Purchase/purchase.js index ac6d91435636..298808d4e939 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Binary/Before Purchase/purchase.js +++ b/packages/bot-skeleton/src/scratch/blocks/Binary/Before Purchase/purchase.js @@ -1,6 +1,6 @@ import { localize } from '@deriv/translations'; import { getContractTypeOptions } from '../../../shared'; -import { modifyContextMenu } from '../../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../../utils'; Blockly.Blocks.purchase = { init() { @@ -40,6 +40,7 @@ Blockly.Blocks.purchase = { if (!this.workspace || Blockly.derivWorkspace.isFlyoutVisible || this.workspace.isDragging()) { return; } + replaceDropdownIconsForSafari(this, 'PURCHASE_LIST'); if (event.type === Blockly.Events.BLOCK_CREATE && event.ids.includes(this.id)) { this.populatePurchaseList(event); diff --git a/packages/bot-skeleton/src/scratch/blocks/Binary/Tools/Misc/console.js b/packages/bot-skeleton/src/scratch/blocks/Binary/Tools/Misc/console.js index dc7bd5fdbb6b..66c62c9f54ed 100644 --- a/packages/bot-skeleton/src/scratch/blocks/Binary/Tools/Misc/console.js +++ b/packages/bot-skeleton/src/scratch/blocks/Binary/Tools/Misc/console.js @@ -1,5 +1,5 @@ import { localize } from '@deriv/translations'; -import { emptyTextValidator, modifyContextMenu } from '../../../../utils'; +import { emptyTextValidator, modifyContextMenu, replaceDropdownIconsForSafari } from '../../../../utils'; Blockly.Blocks.console = { init() { @@ -45,6 +45,9 @@ Blockly.Blocks.console = { ), }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'CONSOLE_TYPE'); + }, getRequiredValueInputs() { return { MESSAGE: emptyTextValidator, diff --git a/packages/bot-skeleton/src/scratch/blocks/Binary/Tools/Misc/notify.js b/packages/bot-skeleton/src/scratch/blocks/Binary/Tools/Misc/notify.js index 4d70610faa00..40a232f3ce72 100644 --- a/packages/bot-skeleton/src/scratch/blocks/Binary/Tools/Misc/notify.js +++ b/packages/bot-skeleton/src/scratch/blocks/Binary/Tools/Misc/notify.js @@ -1,5 +1,5 @@ import { localize } from '@deriv/translations'; -import { emptyTextValidator, modifyContextMenu } from '../../../../utils'; +import { emptyTextValidator, modifyContextMenu, replaceDropdownIconsForSafari } from '../../../../utils'; import { config } from '../../../../../constants/config'; Blockly.Blocks.notify = { @@ -53,6 +53,10 @@ Blockly.Blocks.notify = { ), }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'NOTIFICATION_TYPE'); + replaceDropdownIconsForSafari(this, 'NOTIFICATION_SOUND'); + }, getRequiredValueInputs() { return { MESSAGE: emptyTextValidator, diff --git a/packages/bot-skeleton/src/scratch/blocks/Binary/Trade Definition/trade_definition_candleinterval.js b/packages/bot-skeleton/src/scratch/blocks/Binary/Trade Definition/trade_definition_candleinterval.js index 597453f97fae..4ba5d970f1b7 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Binary/Trade Definition/trade_definition_candleinterval.js +++ b/packages/bot-skeleton/src/scratch/blocks/Binary/Trade Definition/trade_definition_candleinterval.js @@ -1,6 +1,6 @@ import { localize } from '@deriv/translations'; import { config } from '../../../../constants/config'; -import { modifyContextMenu } from '../../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../../utils'; Blockly.Blocks.trade_definition_candleinterval = { init() { @@ -27,6 +27,7 @@ Blockly.Blocks.trade_definition_candleinterval = { if (!this.workspace || Blockly.derivWorkspace.isFlyoutVisible || this.workspace.isDragging()) { return; } + replaceDropdownIconsForSafari(this, 'CANDLEINTERVAL_LIST'); this.enforceLimitations(); }, diff --git a/packages/bot-skeleton/src/scratch/blocks/Binary/Trade Definition/trade_definition_contracttype.js b/packages/bot-skeleton/src/scratch/blocks/Binary/Trade Definition/trade_definition_contracttype.js index f2bea32cb5d1..1f23cd456b35 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Binary/Trade Definition/trade_definition_contracttype.js +++ b/packages/bot-skeleton/src/scratch/blocks/Binary/Trade Definition/trade_definition_contracttype.js @@ -1,7 +1,7 @@ import { localize } from '@deriv/translations'; import { config } from '../../../../constants/config'; import { getContractTypeOptions } from '../../../shared'; -import { modifyContextMenu } from '../../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../../utils'; Blockly.Blocks.trade_definition_contracttype = { init() { @@ -30,6 +30,7 @@ Blockly.Blocks.trade_definition_contracttype = { if (!this.workspace || Blockly.derivWorkspace.isFlyoutVisible || this.workspace.isDragging()) { return; } + replaceDropdownIconsForSafari(this, 'TYPE_LIST'); this.enforceLimitations(); diff --git a/packages/bot-skeleton/src/scratch/blocks/Binary/Trade Definition/trade_definition_market.js b/packages/bot-skeleton/src/scratch/blocks/Binary/Trade Definition/trade_definition_market.js index a91fb611df78..f089e5142ce8 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Binary/Trade Definition/trade_definition_market.js +++ b/packages/bot-skeleton/src/scratch/blocks/Binary/Trade Definition/trade_definition_market.js @@ -1,5 +1,5 @@ import { localize } from '@deriv/translations'; -import { runIrreversibleEvents, modifyContextMenu } from '../../../utils'; +import { runIrreversibleEvents, modifyContextMenu, replaceDropdownIconsForSafari } from '../../../utils'; import ApiHelpers from '../../../../services/api/api-helpers'; /* eslint-disable */ @@ -54,6 +54,9 @@ Blockly.Blocks.trade_definition_market = { ) { return; } + replaceDropdownIconsForSafari(this, 'MARKET_LIST'); + replaceDropdownIconsForSafari(this, 'SUBMARKET_LIST'); + replaceDropdownIconsForSafari(this, 'SYMBOL_LIST'); this.enforceLimitations(); diff --git a/packages/bot-skeleton/src/scratch/blocks/Binary/Trade Definition/trade_definition_tradeoptions.js b/packages/bot-skeleton/src/scratch/blocks/Binary/Trade Definition/trade_definition_tradeoptions.js index 79ab1dba25c0..3ced70eeabb7 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Binary/Trade Definition/trade_definition_tradeoptions.js +++ b/packages/bot-skeleton/src/scratch/blocks/Binary/Trade Definition/trade_definition_tradeoptions.js @@ -1,7 +1,12 @@ import { localize } from '@deriv/translations'; import { getCurrencyDisplayCode, getDecimalPlaces } from '@deriv/shared'; import DBotStore from '../../../dbot-store'; -import { runIrreversibleEvents, runGroupedEvents, modifyContextMenu } from '../../../utils'; +import { + runIrreversibleEvents, + runGroupedEvents, + modifyContextMenu, + replaceDropdownIconsForSafari, +} from '../../../utils'; import { config } from '../../../../constants/config'; import ApiHelpers from '../../../../services/api/api-helpers'; @@ -84,6 +89,7 @@ Blockly.Blocks.trade_definition_tradeoptions = { input_target.setFieldValue(new_value.toString(), 'NUM'); } }); + replaceDropdownIconsForSafari(this, 'DURATIONTYPE_LIST'); } if (!this.workspace || this.workspace.isDragging() || Blockly.derivWorkspace.isFlyoutVisible) { diff --git a/packages/bot-skeleton/src/scratch/blocks/Logic/logic_boolean.js b/packages/bot-skeleton/src/scratch/blocks/Logic/logic_boolean.js index fc55ca7213c2..080a50847582 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Logic/logic_boolean.js +++ b/packages/bot-skeleton/src/scratch/blocks/Logic/logic_boolean.js @@ -1,5 +1,5 @@ import { localize } from '@deriv/translations'; -import { modifyContextMenu } from '../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../utils'; Blockly.Blocks.logic_boolean = { init() { @@ -34,6 +34,9 @@ Blockly.Blocks.logic_boolean = { description: localize('This is a single block that returns a boolean value, either true or false.'), }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'BOOL'); + }, customContextMenu(menu) { modifyContextMenu(menu); }, diff --git a/packages/bot-skeleton/src/scratch/blocks/Logic/logic_compare.js b/packages/bot-skeleton/src/scratch/blocks/Logic/logic_compare.js index 45160dc84494..21d0414fe9e2 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Logic/logic_compare.js +++ b/packages/bot-skeleton/src/scratch/blocks/Logic/logic_compare.js @@ -1,5 +1,5 @@ import { localize } from '@deriv/translations'; -import { modifyContextMenu } from '../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../utils'; Blockly.Blocks.logic_compare = { init() { @@ -46,6 +46,9 @@ Blockly.Blocks.logic_compare = { description: localize('This block compares two values and is used to build a conditional structure.'), }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'OP'); + }, getRequiredValueInputs() { return { A: null, diff --git a/packages/bot-skeleton/src/scratch/blocks/Logic/logic_operation.js b/packages/bot-skeleton/src/scratch/blocks/Logic/logic_operation.js index 206815b55cf7..8528d5aeee97 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Logic/logic_operation.js +++ b/packages/bot-skeleton/src/scratch/blocks/Logic/logic_operation.js @@ -1,5 +1,5 @@ import { localize } from '@deriv/translations'; -import { modifyContextMenu } from '../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../utils'; Blockly.Blocks.logic_operation = { init() { @@ -39,6 +39,9 @@ Blockly.Blocks.logic_operation = { customContextMenu(menu) { modifyContextMenu(menu); }, + onchange() { + replaceDropdownIconsForSafari(this, 'OP'); + }, meta() { return { display_name: localize('Logic operation'), diff --git a/packages/bot-skeleton/src/scratch/blocks/Math/math_arithmetic.js b/packages/bot-skeleton/src/scratch/blocks/Math/math_arithmetic.js index 3f8a8fd8b6ce..fb5e7a5ab340 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Math/math_arithmetic.js +++ b/packages/bot-skeleton/src/scratch/blocks/Math/math_arithmetic.js @@ -1,5 +1,5 @@ import { localize } from '@deriv/translations'; -import { modifyContextMenu } from '../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../utils'; Blockly.Blocks.math_arithmetic = { init() { @@ -47,6 +47,9 @@ Blockly.Blocks.math_arithmetic = { description: localize('This block performs arithmetic operations between two numbers.'), }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'OP'); + }, getRequiredValueInputs() { return { A: null, diff --git a/packages/bot-skeleton/src/scratch/blocks/Math/math_change.js b/packages/bot-skeleton/src/scratch/blocks/Math/math_change.js index f376065360bf..6b1bf87a50f8 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Math/math_change.js +++ b/packages/bot-skeleton/src/scratch/blocks/Math/math_change.js @@ -1,5 +1,5 @@ import { localize } from '@deriv/translations'; -import { modifyContextMenu } from '../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../utils'; Blockly.Blocks.math_change = { /** @@ -62,6 +62,9 @@ Blockly.Blocks.math_change = { customContextMenu(menu) { modifyContextMenu(menu); }, + onchange() { + replaceDropdownIconsForSafari(this, 'CONSTANT'); + }, }; Blockly.JavaScript.javascriptGenerator.forBlock.math_change = block => { diff --git a/packages/bot-skeleton/src/scratch/blocks/Math/math_constant.js b/packages/bot-skeleton/src/scratch/blocks/Math/math_constant.js index 8dea9d3aa129..1d4f8cd47a63 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Math/math_constant.js +++ b/packages/bot-skeleton/src/scratch/blocks/Math/math_constant.js @@ -1,5 +1,5 @@ import { localize } from '@deriv/translations'; -import { modifyContextMenu } from '../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../utils'; Blockly.Blocks.math_constant = { init() { @@ -40,6 +40,9 @@ Blockly.Blocks.math_constant = { description: localize('This block gives you the selected constant values.'), }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'CONSTANT'); + }, }; Blockly.JavaScript.javascriptGenerator.forBlock.math_constant = block => { diff --git a/packages/bot-skeleton/src/scratch/blocks/Math/math_single.js b/packages/bot-skeleton/src/scratch/blocks/Math/math_single.js index d1716edc23b7..d8e08161832e 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Math/math_single.js +++ b/packages/bot-skeleton/src/scratch/blocks/Math/math_single.js @@ -1,5 +1,5 @@ import { localize } from '@deriv/translations'; -import { modifyContextMenu } from '../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../utils'; Blockly.Blocks.math_single = { init() { @@ -42,6 +42,9 @@ Blockly.Blocks.math_single = { description: localize('This block performs the selected operations to a given number.'), }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'OP'); + }, getRequiredValueInputs() { return { NUM: null, diff --git a/packages/bot-skeleton/src/scratch/blocks/Math/math_trig.js b/packages/bot-skeleton/src/scratch/blocks/Math/math_trig.js index 7294fa09973c..2eff4f3896ac 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Math/math_trig.js +++ b/packages/bot-skeleton/src/scratch/blocks/Math/math_trig.js @@ -1,5 +1,5 @@ import { localize } from '@deriv/translations'; -import { modifyContextMenu } from '../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../utils'; Blockly.Blocks.math_trig = { init() { @@ -45,6 +45,9 @@ Blockly.Blocks.math_trig = { description: localize('This block performs trigonometric functions.'), }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'OP'); + }, getRequiredValueInputs() { return { NUM: null, diff --git a/packages/bot-skeleton/src/scratch/blocks/Text/text_append.js b/packages/bot-skeleton/src/scratch/blocks/Text/text_append.js index 397b4853980e..65a5ab146cdd 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Text/text_append.js +++ b/packages/bot-skeleton/src/scratch/blocks/Text/text_append.js @@ -1,5 +1,5 @@ import { localize } from '@deriv/translations'; -import { emptyTextValidator, modifyContextMenu } from '../../utils'; +import { emptyTextValidator, modifyContextMenu, replaceDropdownIconsForSafari } from '../../utils'; Blockly.Blocks.text_append = { init() { @@ -37,6 +37,9 @@ Blockly.Blocks.text_append = { description: localize('Appends a given text to a variable.'), }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'VAR'); + }, getRequiredValueInputs() { return { TEXT: emptyTextValidator, diff --git a/packages/bot-skeleton/src/scratch/blocks/Text/text_changeCase.js b/packages/bot-skeleton/src/scratch/blocks/Text/text_changeCase.js index 7f81e9f24df5..a7a5c7b5293b 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Text/text_changeCase.js +++ b/packages/bot-skeleton/src/scratch/blocks/Text/text_changeCase.js @@ -1,5 +1,5 @@ import { localize } from '@deriv/translations'; -import { emptyTextValidator, modifyContextMenu } from '../../utils'; +import { emptyTextValidator, modifyContextMenu, replaceDropdownIconsForSafari } from '../../utils'; Blockly.Blocks.text_changeCase = { init() { @@ -46,6 +46,9 @@ Blockly.Blocks.text_changeCase = { ), }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'CASE'); + }, getRequiredValueInputs() { return { TEXT: emptyTextValidator, diff --git a/packages/bot-skeleton/src/scratch/blocks/Text/text_charAt.js b/packages/bot-skeleton/src/scratch/blocks/Text/text_charAt.js index 0c2dd78fac7f..4e58c0a5dec9 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Text/text_charAt.js +++ b/packages/bot-skeleton/src/scratch/blocks/Text/text_charAt.js @@ -1,5 +1,5 @@ import { localize } from '@deriv/translations'; -import { emptyTextValidator, modifyContextMenu } from '../../utils'; +import { emptyTextValidator, modifyContextMenu, replaceDropdownIconsForSafari } from '../../utils'; Blockly.Blocks.text_charAt = { init() { @@ -59,6 +59,9 @@ Blockly.Blocks.text_charAt = { ), }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'WHERE'); + }, mutationToDom() { const container = document.createElement('mutation'); container.setAttribute('at', !!this.isAt); diff --git a/packages/bot-skeleton/src/scratch/blocks/Text/text_getSubstring.js b/packages/bot-skeleton/src/scratch/blocks/Text/text_getSubstring.js index 11556acec4ef..86fceb416fe9 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Text/text_getSubstring.js +++ b/packages/bot-skeleton/src/scratch/blocks/Text/text_getSubstring.js @@ -1,5 +1,5 @@ import { localize } from '@deriv/translations'; -import { emptyTextValidator, modifyContextMenu } from '../../utils'; +import { emptyTextValidator, modifyContextMenu, replaceDropdownIconsForSafari } from '../../utils'; Blockly.Blocks.text_getSubstring = { init() { @@ -73,6 +73,10 @@ Blockly.Blocks.text_getSubstring = { description: localize('Returns a specific portion of a given string of text.'), }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'WHERE1'); + replaceDropdownIconsForSafari(this, 'WHERE2'); + }, mutationToDom() { const container = document.createElement('mutation'); const isAt1 = this.getInput('AT1').type === Blockly.INPUT_VALUE; diff --git a/packages/bot-skeleton/src/scratch/blocks/Text/text_indexOf.js b/packages/bot-skeleton/src/scratch/blocks/Text/text_indexOf.js index 6ed3b9b4ba2f..ba080f8c32e1 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Text/text_indexOf.js +++ b/packages/bot-skeleton/src/scratch/blocks/Text/text_indexOf.js @@ -1,5 +1,5 @@ import { localize } from '@deriv/translations'; -import { emptyTextValidator, modifyContextMenu } from '../../utils'; +import { emptyTextValidator, modifyContextMenu, replaceDropdownIconsForSafari } from '../../utils'; Blockly.Blocks.text_indexOf = { init() { @@ -51,6 +51,9 @@ Blockly.Blocks.text_indexOf = { ), }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'END'); + }, customContextMenu(menu) { modifyContextMenu(menu); }, diff --git a/packages/bot-skeleton/src/scratch/blocks/Text/text_prompt_ext.js b/packages/bot-skeleton/src/scratch/blocks/Text/text_prompt_ext.js index 76565d8aef07..74705a51dd5f 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Text/text_prompt_ext.js +++ b/packages/bot-skeleton/src/scratch/blocks/Text/text_prompt_ext.js @@ -1,5 +1,5 @@ import { localize } from '@deriv/translations'; -import { emptyTextValidator, modifyContextMenu } from '../../utils'; +import { emptyTextValidator, modifyContextMenu, replaceDropdownIconsForSafari } from '../../utils'; Blockly.Blocks.text_prompt_ext = { init() { @@ -57,6 +57,9 @@ Blockly.Blocks.text_prompt_ext = { ), }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'TYPE'); + }, getRequiredValueInputs() { return { TEXT: emptyTextValidator, diff --git a/packages/bot-skeleton/src/scratch/blocks/Text/text_trim.js b/packages/bot-skeleton/src/scratch/blocks/Text/text_trim.js index 8903bf05f2b8..19933596621b 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Text/text_trim.js +++ b/packages/bot-skeleton/src/scratch/blocks/Text/text_trim.js @@ -1,5 +1,5 @@ import { localize } from '@deriv/translations'; -import { emptyTextValidator, modifyContextMenu } from '../../utils'; +import { emptyTextValidator, modifyContextMenu, replaceDropdownIconsForSafari } from '../../utils'; Blockly.Blocks.text_trim = { init() { @@ -35,6 +35,9 @@ Blockly.Blocks.text_trim = { customContextMenu(menu) { modifyContextMenu(menu); }, + onchange() { + replaceDropdownIconsForSafari(this, 'MODE'); + }, meta() { return { display_name: localize('Trim spaces'), diff --git a/packages/bot-skeleton/src/scratch/dbot.js b/packages/bot-skeleton/src/scratch/dbot.js index f5f65fe103a8..4ee05c5f08b5 100644 --- a/packages/bot-skeleton/src/scratch/dbot.js +++ b/packages/bot-skeleton/src/scratch/dbot.js @@ -9,7 +9,12 @@ import { isDbotRTL } from '../utils/workspace'; import main_xml from './xml/main.xml'; import DBotStore from './dbot-store'; -import { isAllRequiredBlocksEnabled, updateDisabledBlocks, validateErrorOnBlockDelete } from './utils'; +import { + isAllRequiredBlocksEnabled, + replaceDropdownIconsForSafari, + updateDisabledBlocks, + validateErrorOnBlockDelete, +} from './utils'; import { loadBlockly } from './blockly'; import { forgetAccumulatorsProposalRequest } from './accumulators-proposal-handler'; @@ -36,6 +41,8 @@ class DBot { if (!this.workspace || Blockly.derivWorkspace.isFlyoutVisible || this.workspace.isDragging()) { return; } + replaceDropdownIconsForSafari(this, 'TRADETYPECAT_LIST'); + replaceDropdownIconsForSafari(this, 'TRADETYPE_LIST'); this.enforceLimitations(); diff --git a/packages/bot-skeleton/src/scratch/utils/index.js b/packages/bot-skeleton/src/scratch/utils/index.js index 67814f328b43..ef9233870df0 100644 --- a/packages/bot-skeleton/src/scratch/utils/index.js +++ b/packages/bot-skeleton/src/scratch/utils/index.js @@ -10,6 +10,19 @@ import { LogTypes } from '../../constants/messages'; import { error_message_map } from '../../utils/error-config'; import { botNotification } from '../../../../bot-web-ui/src/components/bot-notification/bot-notification'; import { notification_message } from '../../../../bot-web-ui/src/components/bot-notification/bot-notification-utils'; +import { isSafari } from '@deriv/shared'; + +export const replaceDropdownIconsForSafari = (block_dropdown_instance, type) => { + const is_safari = isSafari(); + if (is_safari && DBotStore?.instance) { + const { dashboard } = DBotStore.instance; + const is_dark_mode = dashboard.is_dark_mode; + const icon = is_dark_mode ? 'arrow-down-white.svg' : 'arrow-down.svg'; + const dropdown_bold = `${block_dropdown_instance.workspace.options.pathToMedia}${icon}`; + const block = block_dropdown_instance.getField(type); + block.svgArrow.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', dropdown_bold); + } +}; export const inject_workspace_options = { media: `${__webpack_public_path__}media/`, diff --git a/packages/bot-web-ui/src/pages/bot-builder/bot-builder.tsx b/packages/bot-web-ui/src/pages/bot-builder/bot-builder.tsx index 0599322b3d4b..38b550e725d4 100644 --- a/packages/bot-web-ui/src/pages/bot-builder/bot-builder.tsx +++ b/packages/bot-web-ui/src/pages/bot-builder/bot-builder.tsx @@ -102,17 +102,6 @@ const BotBuilder = observer(() => { }, }); }; - useEffect(() => { - setTimeout(() => { - if (isSafari()) { - const images: NodeListOf = document.querySelectorAll('.blocklyEditableText image'); - images.forEach((img: SVGImageElement) => { - const newIconUrl = getImageLocation(is_dark_mode_on ? 'arrow-down-white.svg' : 'arrow-down.svg'); - img?.setAttributeNS?.('http://www.w3.org/1999/xlink', 'xlink:href', newIconUrl); - }); - } - }, 100); - }, [is_dark_mode_on]); return ( <> From da071e61dfd804e0257c0cd8777f5b41bd8b8883 Mon Sep 17 00:00:00 2001 From: mayuran-deriv Date: Mon, 14 Oct 2024 01:25:04 +0530 Subject: [PATCH 3/4] fix: unwanted files --- packages/bot-web-ui/src/pages/bot-builder/bot-builder.tsx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/bot-web-ui/src/pages/bot-builder/bot-builder.tsx b/packages/bot-web-ui/src/pages/bot-builder/bot-builder.tsx index 38b550e725d4..f93baf0768c7 100644 --- a/packages/bot-web-ui/src/pages/bot-builder/bot-builder.tsx +++ b/packages/bot-web-ui/src/pages/bot-builder/bot-builder.tsx @@ -1,4 +1,4 @@ -import React, { useEffect } from 'react'; +import React from 'react'; import classNames from 'classnames'; import { observer, useStore } from '@deriv/stores'; import { localize } from '@deriv/translations'; @@ -11,8 +11,6 @@ import SaveModal from '../dashboard/bot-list/save-modal/save-modal'; import BotBuilderTourHandler from '../tutorials/dbot-tours/bot-builder-tour'; import QuickStrategy1 from './quick-strategy'; import WorkspaceWrapper from './workspace-wrapper'; -import { isSafari } from '@deriv/shared'; -import { getImageLocation } from '../../public-path'; const BotBuilder = observer(() => { const { ui } = useStore(); @@ -23,7 +21,7 @@ const BotBuilder = observer(() => { const { is_loading } = blockly_store; const is_blockly_listener_registered = React.useRef(false); const is_blockly_delete_listener_registered = React.useRef(false); - const { is_desktop, is_dark_mode_on } = ui; + const { is_desktop } = ui; const { onMount, onUnmount } = app; const el_ref = React.useRef(null); let deleted_block_id: null | string = null; From e8ab0b6ebd24451cb5c91496d53e3199b5b6e012 Mon Sep 17 00:00:00 2001 From: mayuran-deriv Date: Mon, 14 Oct 2024 02:40:21 +0530 Subject: [PATCH 4/4] fix: drop down --- .../src/scratch/blocks/Advanced/List/lists_getIndex.js | 6 +++++- .../src/scratch/blocks/Advanced/List/lists_getSublist.js | 6 +++++- .../src/scratch/blocks/Advanced/List/lists_setIndex.js | 6 +++++- .../src/scratch/blocks/Advanced/List/lists_split.js | 5 ++++- .../scratch/blocks/Binary/After Purchase/check_result.js | 3 ++- .../scratch/blocks/Binary/After Purchase/read_details.js | 5 ++++- .../src/scratch/blocks/Binary/Before Purchase/purchase.js | 3 +-- .../scratch/blocks/Binary/Tick Analysis/check_direction.js | 5 ++++- .../src/scratch/blocks/Binary/Tick Analysis/get_ohlc.js | 5 ++++- .../src/scratch/blocks/Binary/Tick Analysis/ohlc.js | 5 ++++- .../src/scratch/blocks/Binary/Tick Analysis/ohlc_values.js | 6 +++++- .../src/scratch/blocks/Binary/Tick Analysis/readOhlc.js | 6 +++++- .../blocks/Binary/Tools/Candle/ohlc_values_in_list.js | 5 ++++- .../src/scratch/blocks/Binary/Tools/Candle/read_ohlc_obj.js | 5 ++++- .../src/scratch/blocks/Binary/Tools/Misc/balance.js | 5 ++++- .../bot-skeleton/src/scratch/blocks/Math/math_change.js | 2 +- 16 files changed, 61 insertions(+), 17 deletions(-) diff --git a/packages/bot-skeleton/src/scratch/blocks/Advanced/List/lists_getIndex.js b/packages/bot-skeleton/src/scratch/blocks/Advanced/List/lists_getIndex.js index 1138261e9b80..3afbf40e974d 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Advanced/List/lists_getIndex.js +++ b/packages/bot-skeleton/src/scratch/blocks/Advanced/List/lists_getIndex.js @@ -1,5 +1,5 @@ import { localize } from '@deriv/translations'; -import { modifyContextMenu } from '../../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../../utils'; Blockly.Blocks.lists_getIndex = { init() { @@ -43,6 +43,10 @@ Blockly.Blocks.lists_getIndex = { category: Blockly.Categories.List, }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'MODE'); + replaceDropdownIconsForSafari(this, 'WHERE'); + }, mutationToDom() { const container = document.createElement('mutation'); const isStatement = !this.outputConnection; diff --git a/packages/bot-skeleton/src/scratch/blocks/Advanced/List/lists_getSublist.js b/packages/bot-skeleton/src/scratch/blocks/Advanced/List/lists_getSublist.js index 788baa58eb04..16f8198c1eb8 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Advanced/List/lists_getSublist.js +++ b/packages/bot-skeleton/src/scratch/blocks/Advanced/List/lists_getSublist.js @@ -1,5 +1,5 @@ import { localize } from '@deriv/translations'; -import { modifyContextMenu } from '../../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../../utils'; Blockly.Blocks.lists_getSublist = { init() { @@ -41,6 +41,10 @@ Blockly.Blocks.lists_getSublist = { category: Blockly.Categories.List, }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'WHERE1'); + replaceDropdownIconsForSafari(this, 'WHERE2'); + }, mutationToDom() { const container = document.createElement('mutation'); const isAt1 = this.getInput('AT1').type === Blockly.INPUT_VALUE; diff --git a/packages/bot-skeleton/src/scratch/blocks/Advanced/List/lists_setIndex.js b/packages/bot-skeleton/src/scratch/blocks/Advanced/List/lists_setIndex.js index a89ffb7d0161..8e6e3006ba1f 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Advanced/List/lists_setIndex.js +++ b/packages/bot-skeleton/src/scratch/blocks/Advanced/List/lists_setIndex.js @@ -1,5 +1,5 @@ import { localize } from '@deriv/translations'; -import { modifyContextMenu } from '../../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../../utils'; Blockly.Blocks.lists_setIndex = { init() { @@ -42,6 +42,10 @@ Blockly.Blocks.lists_setIndex = { category: Blockly.Categories.List, }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'MODE'); + replaceDropdownIconsForSafari(this, 'WHERE'); + }, mutationToDom() { const container = document.createElement('mutation'); const isAt = this.getInput('AT').type === Blockly.INPUT_VALUE; diff --git a/packages/bot-skeleton/src/scratch/blocks/Advanced/List/lists_split.js b/packages/bot-skeleton/src/scratch/blocks/Advanced/List/lists_split.js index 6b5941005529..ab1ac3970fa5 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Advanced/List/lists_split.js +++ b/packages/bot-skeleton/src/scratch/blocks/Advanced/List/lists_split.js @@ -1,5 +1,5 @@ import { localize } from '@deriv/translations'; -import { modifyContextMenu } from '../../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../../utils'; Blockly.Blocks.lists_split = { init() { @@ -39,6 +39,9 @@ Blockly.Blocks.lists_split = { category: Blockly.Categories.List, }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'MODE'); + }, mutationToDom() { const container = document.createElement('mutation'); container.setAttribute('mode', this.getFieldValue('MODE')); diff --git a/packages/bot-skeleton/src/scratch/blocks/Binary/After Purchase/check_result.js b/packages/bot-skeleton/src/scratch/blocks/Binary/After Purchase/check_result.js index beb3b524920a..d4d88517921d 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Binary/After Purchase/check_result.js +++ b/packages/bot-skeleton/src/scratch/blocks/Binary/After Purchase/check_result.js @@ -1,6 +1,6 @@ import { localize } from '@deriv/translations'; import { config } from '../../../../constants/config'; -import { modifyContextMenu } from '../../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../../utils'; Blockly.Blocks.contract_check_result = { init() { @@ -32,6 +32,7 @@ Blockly.Blocks.contract_check_result = { }; }, onchange(event) { + replaceDropdownIconsForSafari(this, 'CHECK_RESULT'); if (!this.workspace || Blockly.derivWorkspace.isFlyoutVisible || this.workspace.isDragging()) { return; } diff --git a/packages/bot-skeleton/src/scratch/blocks/Binary/After Purchase/read_details.js b/packages/bot-skeleton/src/scratch/blocks/Binary/After Purchase/read_details.js index ce20fc4fb82a..c761815dbece 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Binary/After Purchase/read_details.js +++ b/packages/bot-skeleton/src/scratch/blocks/Binary/After Purchase/read_details.js @@ -1,6 +1,6 @@ import { localize } from '@deriv/translations'; import { config } from '../../../../constants/config'; -import { modifyContextMenu } from '../../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../../utils'; Blockly.Blocks.read_details = { init() { @@ -31,6 +31,9 @@ Blockly.Blocks.read_details = { description: localize('This block gives you information about your last contract.'), }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'DETAIL_INDEX'); + }, customContextMenu(menu) { modifyContextMenu(menu); }, diff --git a/packages/bot-skeleton/src/scratch/blocks/Binary/Before Purchase/purchase.js b/packages/bot-skeleton/src/scratch/blocks/Binary/Before Purchase/purchase.js index 298808d4e939..ac6d91435636 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Binary/Before Purchase/purchase.js +++ b/packages/bot-skeleton/src/scratch/blocks/Binary/Before Purchase/purchase.js @@ -1,6 +1,6 @@ import { localize } from '@deriv/translations'; import { getContractTypeOptions } from '../../../shared'; -import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../../utils'; +import { modifyContextMenu } from '../../../utils'; Blockly.Blocks.purchase = { init() { @@ -40,7 +40,6 @@ Blockly.Blocks.purchase = { if (!this.workspace || Blockly.derivWorkspace.isFlyoutVisible || this.workspace.isDragging()) { return; } - replaceDropdownIconsForSafari(this, 'PURCHASE_LIST'); if (event.type === Blockly.Events.BLOCK_CREATE && event.ids.includes(this.id)) { this.populatePurchaseList(event); diff --git a/packages/bot-skeleton/src/scratch/blocks/Binary/Tick Analysis/check_direction.js b/packages/bot-skeleton/src/scratch/blocks/Binary/Tick Analysis/check_direction.js index f7d104fa4665..6b3998a3eaea 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Binary/Tick Analysis/check_direction.js +++ b/packages/bot-skeleton/src/scratch/blocks/Binary/Tick Analysis/check_direction.js @@ -1,6 +1,6 @@ import { localize } from '@deriv/translations'; import { config } from '../../../../constants/config'; -import { modifyContextMenu } from '../../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../../utils'; Blockly.Blocks.check_direction = { init() { @@ -33,6 +33,9 @@ Blockly.Blocks.check_direction = { ), }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'CHECK_DIRECTION'); + }, customContextMenu(menu) { modifyContextMenu(menu); }, diff --git a/packages/bot-skeleton/src/scratch/blocks/Binary/Tick Analysis/get_ohlc.js b/packages/bot-skeleton/src/scratch/blocks/Binary/Tick Analysis/get_ohlc.js index ef93048d7ca8..04f9f9dce5b0 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Binary/Tick Analysis/get_ohlc.js +++ b/packages/bot-skeleton/src/scratch/blocks/Binary/Tick Analysis/get_ohlc.js @@ -1,6 +1,6 @@ import { localize } from '@deriv/translations'; import { config } from '../../../../constants/config'; -import { modifyContextMenu } from '../../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../../utils'; Blockly.Blocks.get_ohlc = { init() { @@ -39,6 +39,9 @@ Blockly.Blocks.get_ohlc = { description: localize('This block gives you a specific candle from within the selected time interval.'), }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'CANDLEINTERVAL_LIST'); + }, getRequiredValueInputs() { return { CANDLEINDEX: null, diff --git a/packages/bot-skeleton/src/scratch/blocks/Binary/Tick Analysis/ohlc.js b/packages/bot-skeleton/src/scratch/blocks/Binary/Tick Analysis/ohlc.js index c776841c3106..597aec1d44fe 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Binary/Tick Analysis/ohlc.js +++ b/packages/bot-skeleton/src/scratch/blocks/Binary/Tick Analysis/ohlc.js @@ -1,6 +1,6 @@ import { localize } from '@deriv/translations'; import { config } from '../../../../constants/config'; -import { modifyContextMenu } from '../../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../../utils'; Blockly.Blocks.ohlc = { init() { @@ -33,6 +33,9 @@ Blockly.Blocks.ohlc = { description: localize('This block gives you a list of candles within a selected time interval.'), }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'CANDLEINTERVAL_LIST'); + }, customContextMenu(menu) { modifyContextMenu(menu); }, diff --git a/packages/bot-skeleton/src/scratch/blocks/Binary/Tick Analysis/ohlc_values.js b/packages/bot-skeleton/src/scratch/blocks/Binary/Tick Analysis/ohlc_values.js index f778ffcff0d0..28093ab48054 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Binary/Tick Analysis/ohlc_values.js +++ b/packages/bot-skeleton/src/scratch/blocks/Binary/Tick Analysis/ohlc_values.js @@ -1,6 +1,6 @@ import { localize } from '@deriv/translations'; import { config } from '../../../../constants/config'; -import { modifyContextMenu } from '../../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../../utils'; Blockly.Blocks.ohlc_values = { init() { @@ -46,6 +46,10 @@ Blockly.Blocks.ohlc_values = { ), }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'CANDLEINTERVAL_LIST'); + replaceDropdownIconsForSafari(this, 'OHLCFIELD_LIST'); + }, customContextMenu(menu) { modifyContextMenu(menu); }, diff --git a/packages/bot-skeleton/src/scratch/blocks/Binary/Tick Analysis/readOhlc.js b/packages/bot-skeleton/src/scratch/blocks/Binary/Tick Analysis/readOhlc.js index 64effcf3afc4..f0340b43f106 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Binary/Tick Analysis/readOhlc.js +++ b/packages/bot-skeleton/src/scratch/blocks/Binary/Tick Analysis/readOhlc.js @@ -1,6 +1,6 @@ import { localize } from '@deriv/translations'; import { config } from '../../../../constants/config'; -import { modifyContextMenu } from '../../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../../utils'; Blockly.Blocks.read_ohlc = { init() { @@ -47,6 +47,10 @@ Blockly.Blocks.read_ohlc = { description: localize('This block gives you the specified candle value for a selected time interval.'), }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'OHLCFIELD_LIST'); + replaceDropdownIconsForSafari(this, 'CANDLEINTERVAL_LIST'); + }, getRequiredValueInputs() { return { CANDLEINDEX: null, diff --git a/packages/bot-skeleton/src/scratch/blocks/Binary/Tools/Candle/ohlc_values_in_list.js b/packages/bot-skeleton/src/scratch/blocks/Binary/Tools/Candle/ohlc_values_in_list.js index d7095f3eaa1b..fbd00e2e1740 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Binary/Tools/Candle/ohlc_values_in_list.js +++ b/packages/bot-skeleton/src/scratch/blocks/Binary/Tools/Candle/ohlc_values_in_list.js @@ -1,6 +1,6 @@ import { localize } from '@deriv/translations'; import { config } from '../../../../../constants/config'; -import { modifyContextMenu } from '../../../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../../../utils'; Blockly.Blocks.ohlc_values_in_list = { init() { @@ -38,6 +38,9 @@ Blockly.Blocks.ohlc_values_in_list = { description: localize('This block gives you the selected candle value from a list of candles.'), }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'OHLCFIELD_LIST'); + }, getRequiredValueInputs() { return { OHLCLIST: null, diff --git a/packages/bot-skeleton/src/scratch/blocks/Binary/Tools/Candle/read_ohlc_obj.js b/packages/bot-skeleton/src/scratch/blocks/Binary/Tools/Candle/read_ohlc_obj.js index 2bfcc5e8919f..9d75a4008072 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Binary/Tools/Candle/read_ohlc_obj.js +++ b/packages/bot-skeleton/src/scratch/blocks/Binary/Tools/Candle/read_ohlc_obj.js @@ -1,6 +1,6 @@ import { localize } from '@deriv/translations'; import { config } from '../../../../../constants/config'; -import { modifyContextMenu } from '../../../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../../../utils'; Blockly.Blocks.read_ohlc_obj = { init() { @@ -38,6 +38,9 @@ Blockly.Blocks.read_ohlc_obj = { description: localize('This block gives you the selected candle value.'), }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'OHLCFIELD_LIST'); + }, getRequiredValueInputs() { return { OHLCOBJ: null, diff --git a/packages/bot-skeleton/src/scratch/blocks/Binary/Tools/Misc/balance.js b/packages/bot-skeleton/src/scratch/blocks/Binary/Tools/Misc/balance.js index 79c95dc0b9ba..b7314588c3b5 100644 --- a/packages/bot-skeleton/src/scratch/blocks/Binary/Tools/Misc/balance.js +++ b/packages/bot-skeleton/src/scratch/blocks/Binary/Tools/Misc/balance.js @@ -1,6 +1,6 @@ import { localize } from '@deriv/translations'; import { config } from '../../../../../constants/config'; -import { modifyContextMenu } from '../../../../utils'; +import { modifyContextMenu, replaceDropdownIconsForSafari } from '../../../../utils'; Blockly.Blocks.balance = { init() { @@ -43,6 +43,9 @@ Blockly.Blocks.balance = { ), }; }, + onchange() { + replaceDropdownIconsForSafari(this, 'BALANCE_TYPE'); + }, customContextMenu(menu) { modifyContextMenu(menu); }, diff --git a/packages/bot-skeleton/src/scratch/blocks/Math/math_change.js b/packages/bot-skeleton/src/scratch/blocks/Math/math_change.js index 6b1bf87a50f8..ec06eb64ff5d 100755 --- a/packages/bot-skeleton/src/scratch/blocks/Math/math_change.js +++ b/packages/bot-skeleton/src/scratch/blocks/Math/math_change.js @@ -63,7 +63,7 @@ Blockly.Blocks.math_change = { modifyContextMenu(menu); }, onchange() { - replaceDropdownIconsForSafari(this, 'CONSTANT'); + replaceDropdownIconsForSafari(this, 'VAR'); }, };