From 56ea078d92e73d9ca74a2a54f69ac09c71e6e87d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNikita=E2=80=9D?= <“nikita@deriv.com”> Date: Thu, 23 Dec 2021 17:16:51 +0300 Subject: [PATCH 1/6] feat:add deriv go navigation components --- src/components/custom/other-platforms.js | 11 +++++++++++ src/components/elements/off-canvas-menu.js | 13 +++++++++++++ src/images/svg/deriv-go/deriv-go-icon.svg | 1 + 3 files changed, 25 insertions(+) create mode 100644 src/images/svg/deriv-go/deriv-go-icon.svg diff --git a/src/components/custom/other-platforms.js b/src/components/custom/other-platforms.js index bbe6c332d7a..ea9d97f60c9 100644 --- a/src/components/custom/other-platforms.js +++ b/src/components/custom/other-platforms.js @@ -27,6 +27,7 @@ import DBot from 'images/svg/dbot/dbot-icon.svg' import DMT5 from 'images/svg/dmt5/dmt5-icon.svg' import BinaryBot from 'images/svg/binarybot-icon.svg' import DTrader from 'images/svg/dtrader/dtrader-icon.svg' +import DerivGo from 'images/svg/deriv-go/deriv-go-icon.svg' import Forex from 'images/svg/custom/forex-nav.svg' import Help from 'images/svg/menu/help-center.svg' import Leadership from 'images/svg/menu/leadership.svg' @@ -369,6 +370,16 @@ export const NavPlatform = ({ onClick, is_ppc, is_ppc_redirect }) => { onClick={onClick} to="/dtrader/" /> + } + content={ + + } + title={} + onClick={onClick} + to={'/landing/deriv-go/'} + /> } diff --git a/src/components/elements/off-canvas-menu.js b/src/components/elements/off-canvas-menu.js index 7b2e4660f3b..373adeafd47 100644 --- a/src/components/elements/off-canvas-menu.js +++ b/src/components/elements/off-canvas-menu.js @@ -21,6 +21,7 @@ import Diagonal from 'images/svg/elements/pink-right-diagonal.svg' import DMT5 from 'images/svg/dmt5/dmt5-icon.svg' import DerivX from 'images/svg/custom/deriv-x.svg' import DTrader from 'images/svg/dtrader/dtrader-icon.svg' +import DerivGo from 'images/svg/deriv-go/deriv-go-icon.svg' import Forex from 'images/svg/custom/forex-nav.svg' import Help from 'images/svg/menu/help-center.svg' import Leadership from 'images/svg/menu/leadership.svg' @@ -239,6 +240,18 @@ export const OffCanvasMenuWrapper = (props) => { to="/dtrader/" /> + + } + content={ + + } + title={} + onClick={handleArrowClick} + to="/landing/deriv-go/" + /> + \ No newline at end of file From 6fdd693c256c3e985c108c68f3a7a41b40711958 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNikita=E2=80=9D?= <“nikita@deriv.com”> Date: Fri, 24 Dec 2021 17:09:21 +0300 Subject: [PATCH 2/6] feat: style trade navigation dropdown / add is_eu check --- src/components/custom/other-platforms.js | 22 +++++---- src/components/custom/platforms-dropdown.js | 51 +++++++++++++++------ src/components/elements/off-canvas-menu.js | 26 ++++++----- src/components/layout/nav.js | 1 + 4 files changed, 64 insertions(+), 36 deletions(-) diff --git a/src/components/custom/other-platforms.js b/src/components/custom/other-platforms.js index ea9d97f60c9..51715b794a9 100644 --- a/src/components/custom/other-platforms.js +++ b/src/components/custom/other-platforms.js @@ -370,16 +370,18 @@ export const NavPlatform = ({ onClick, is_ppc, is_ppc_redirect }) => { onClick={onClick} to="/dtrader/" /> - } - content={ - - } - title={} - onClick={onClick} - to={'/landing/deriv-go/'} - /> + {!is_eu_country && ( + } + content={ + + } + title={} + onClick={onClick} + to={'/landing/deriv-go/'} + /> + )} } diff --git a/src/components/custom/platforms-dropdown.js b/src/components/custom/platforms-dropdown.js index e848dd9ca56..78a539d86b8 100644 --- a/src/components/custom/platforms-dropdown.js +++ b/src/components/custom/platforms-dropdown.js @@ -20,10 +20,15 @@ const FadeInDown = keyframes` } ` +const NavDropdownWrapper = styled.div` + display: flex; + justify-content: center; +` + const NavDropdown = styled.div` display: flex; - width: auto; - left: ${(props) => (props.offset ? props.offset + 'px !important' : 'none')}; + width: ${(props) => (props.is_trade ? '90%' : 'auto')}; + left: ${(props) => (props.offset && !props.is_trade ? props.offset + 'px !important' : 'none')}; position: absolute; padding: 2.2rem 0.8rem; z-index: -1; @@ -68,13 +73,27 @@ const getNavigationContents = (parent, is_ppc, is_ppc_redirect) => { if (parent === 'resources') return } -const PlatformsDropdown = ({ current_ref, is_ppc, is_ppc_redirect, parent, setActiveDropdown }) => { +const PlatformsDropdown = ({ + current_ref, + is_ppc, + is_ppc_redirect, + parent, + setActiveDropdown, + active_dropdown, +}) => { + const is_trade = active_dropdown === 'trade' + const setTradeArrowOffset = () => + current_ref.offsetLeft - (window.innerWidth * 0.1) / 2 + current_ref.offsetWidth / 2 - 15 const [left_offset, setLeftOffset] = useState(current_ref.offsetLeft) - const [left_arrow_offset, setLeftArrowOffset] = useState(current_ref.offsetWidth / 2 - 15) + const [left_arrow_offset, setLeftArrowOffset] = useState( + is_trade ? setTradeArrowOffset() : current_ref.offsetWidth / 2 - 15, + ) const dropdownContainerRef = useRef(null) const updateOffsets = useCallback(() => { - if (current_ref) { + if (is_trade) { + setLeftArrowOffset(setTradeArrowOffset()) + } else if (current_ref && !is_trade) { setLeftOffset(current_ref.offsetLeft) setLeftArrowOffset(current_ref.offsetWidth / 2 - 15) } @@ -92,20 +111,24 @@ const PlatformsDropdown = ({ current_ref, is_ppc, is_ppc_redirect, parent, setAc return ( - - - {getNavigationContents(parent, is_ppc, is_ppc_redirect)} - - + + + + {getNavigationContents(parent, is_ppc, is_ppc_redirect)} + + + ) } PlatformsDropdown.propTypes = { + active_dropdown: PropTypes.string, current_ref: PropTypes.object, is_ppc: PropTypes.bool, is_ppc_redirect: PropTypes.bool, diff --git a/src/components/elements/off-canvas-menu.js b/src/components/elements/off-canvas-menu.js index 373adeafd47..a61824e29ff 100644 --- a/src/components/elements/off-canvas-menu.js +++ b/src/components/elements/off-canvas-menu.js @@ -240,18 +240,20 @@ export const OffCanvasMenuWrapper = (props) => { to="/dtrader/" /> - - } - content={ - - } - title={} - onClick={handleArrowClick} - to="/landing/deriv-go/" - /> - + {!is_eu_country && ( + + } + content={ + + } + title={} + onClick={handleArrowClick} + to="/landing/deriv-go/" + /> + + )} {active_dropdown && ( Date: Tue, 28 Dec 2021 10:19:28 +0300 Subject: [PATCH 3/6] fix: refactor PR remarks --- src/components/custom/other-platforms.js | 2 +- src/components/custom/platforms-dropdown.js | 12 +++--------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/components/custom/other-platforms.js b/src/components/custom/other-platforms.js index 51715b794a9..5c10acc7e0c 100644 --- a/src/components/custom/other-platforms.js +++ b/src/components/custom/other-platforms.js @@ -379,7 +379,7 @@ export const NavPlatform = ({ onClick, is_ppc, is_ppc_redirect }) => { } title={} onClick={onClick} - to={'/landing/deriv-go/'} + to="/landing/deriv-go/" /> )} (props.is_trade ? '90%' : 'auto')}; @@ -111,7 +105,7 @@ const PlatformsDropdown = ({ return ( - + - + ) } From c5fa51559ad9fd4383190ef1b48d9b6bc852085e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNikita=E2=80=9D?= <“nikita@deriv.com”> Date: Wed, 5 Jan 2022 14:49:49 +0300 Subject: [PATCH 4/6] fix: broad of the trade nav --- src/components/custom/platforms-dropdown.js | 22 +++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/components/custom/platforms-dropdown.js b/src/components/custom/platforms-dropdown.js index 9cc17deec06..0f3b953e46a 100644 --- a/src/components/custom/platforms-dropdown.js +++ b/src/components/custom/platforms-dropdown.js @@ -20,8 +20,8 @@ const FadeInDown = keyframes` } ` const NavDropdown = styled.div` - display: flex; width: ${(props) => (props.is_trade ? '90%' : 'auto')}; + max-width: 1200px; left: ${(props) => (props.offset && !props.is_trade ? props.offset + 'px !important' : 'none')}; position: absolute; padding: 2.2rem 0.8rem; @@ -75,24 +75,30 @@ const PlatformsDropdown = ({ setActiveDropdown, active_dropdown, }) => { + const dropdownContainerRef = useRef(null) const is_trade = active_dropdown === 'trade' - const setTradeArrowOffset = () => - current_ref.offsetLeft - (window.innerWidth * 0.1) / 2 + current_ref.offsetWidth / 2 - 15 + const setTradeArrowOffset = (dropdownOffset) => + current_ref.offsetLeft - dropdownOffset + current_ref.offsetWidth / 2 - 15 const [left_offset, setLeftOffset] = useState(current_ref.offsetLeft) - const [left_arrow_offset, setLeftArrowOffset] = useState( - is_trade ? setTradeArrowOffset() : current_ref.offsetWidth / 2 - 15, - ) - const dropdownContainerRef = useRef(null) + const [left_arrow_offset, setLeftArrowOffset] = useState() const updateOffsets = useCallback(() => { if (is_trade) { - setLeftArrowOffset(setTradeArrowOffset()) + setLeftArrowOffset(setTradeArrowOffset(dropdownContainerRef.current.offsetLeft)) } else if (current_ref && !is_trade) { setLeftOffset(current_ref.offsetLeft) setLeftArrowOffset(current_ref.offsetWidth / 2 - 15) } }, [current_ref]) + useEffect( + () => + is_trade + ? setLeftArrowOffset(setTradeArrowOffset(dropdownContainerRef.current.offsetLeft)) + : setLeftArrowOffset(current_ref.offsetWidth / 2 - 15), + [], + ) + useEffect(() => { if (dropdownContainerRef) { setActiveDropdown(dropdownContainerRef) From 313d699e56f5d0080699fa93f135a896f3e89b8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNikita=E2=80=9D?= <“nikita@deriv.com”> Date: Wed, 5 Jan 2022 17:31:11 +0300 Subject: [PATCH 5/6] feat: add deriv-go footer link --- src/components/layout/footer/main-links.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/components/layout/footer/main-links.js b/src/components/layout/footer/main-links.js index d7182ed3cef..7fbe029be62 100644 --- a/src/components/layout/footer/main-links.js +++ b/src/components/layout/footer/main-links.js @@ -40,6 +40,11 @@ const MainLinksSection = ({ is_ppc, is_ppc_redirect, is_eu_country }) => { {localize('DTrader')} + {!is_eu_country && ( + + {localize('Deriv Go')} + + )} {localize('DBot')} From 3697f047921cc8e8d06ff8ce6379de0a9cf4ea86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNikita=E2=80=9D?= <“nikita@deriv.com”> Date: Tue, 11 Jan 2022 15:01:32 +0300 Subject: [PATCH 6/6] refactor: place bonary bot nav card / update offset arrow useEffect --- src/components/custom/other-platforms.js | 46 +++++++-------------- src/components/custom/platforms-dropdown.js | 18 ++++---- 2 files changed, 25 insertions(+), 39 deletions(-) diff --git a/src/components/custom/other-platforms.js b/src/components/custom/other-platforms.js index 5c10acc7e0c..00bdf11c468 100644 --- a/src/components/custom/other-platforms.js +++ b/src/components/custom/other-platforms.js @@ -342,21 +342,6 @@ export const NavPlatform = ({ onClick, is_ppc, is_ppc_redirect }) => { onClick={onClick} otherLinkProps={{ rel: 'noopener noreferrer' }} /> - {is_eu_country && ( - } - content={ - - } - title={} - to="https://bot.deriv.com/" - external="true" - target="_blank" - onClick={onClick} - otherLinkProps={{ rel: 'noopener noreferrer' }} - /> - )} @@ -392,21 +377,22 @@ export const NavPlatform = ({ onClick, is_ppc, is_ppc_redirect }) => { onClick={onClick} to="/dbot/" /> - {!is_eu_country && ( - } - content={ - - } - title={} - to="https://bot.deriv.com/" - external="true" - target="_blank" - onClick={onClick} - otherLinkProps={{ rel: 'noopener noreferrer' }} - /> - )} + + + + } + content={ + + } + title={} + to="https://bot.deriv.com/" + external="true" + target="_blank" + onClick={onClick} + otherLinkProps={{ rel: 'noopener noreferrer' }} + /> ) diff --git a/src/components/custom/platforms-dropdown.js b/src/components/custom/platforms-dropdown.js index 0f3b953e46a..a036e371e94 100644 --- a/src/components/custom/platforms-dropdown.js +++ b/src/components/custom/platforms-dropdown.js @@ -77,8 +77,9 @@ const PlatformsDropdown = ({ }) => { const dropdownContainerRef = useRef(null) const is_trade = active_dropdown === 'trade' + const current_offset = current_ref.offsetWidth / 2 - 15 const setTradeArrowOffset = (dropdownOffset) => - current_ref.offsetLeft - dropdownOffset + current_ref.offsetWidth / 2 - 15 + current_ref.offsetLeft - dropdownOffset + current_offset const [left_offset, setLeftOffset] = useState(current_ref.offsetLeft) const [left_arrow_offset, setLeftArrowOffset] = useState() @@ -87,17 +88,16 @@ const PlatformsDropdown = ({ setLeftArrowOffset(setTradeArrowOffset(dropdownContainerRef.current.offsetLeft)) } else if (current_ref && !is_trade) { setLeftOffset(current_ref.offsetLeft) - setLeftArrowOffset(current_ref.offsetWidth / 2 - 15) + setLeftArrowOffset(current_offset) } }, [current_ref]) - useEffect( - () => - is_trade - ? setLeftArrowOffset(setTradeArrowOffset(dropdownContainerRef.current.offsetLeft)) - : setLeftArrowOffset(current_ref.offsetWidth / 2 - 15), - [], - ) + const setInitArrowOffset = () => { + const dropdown_offset = dropdownContainerRef.current.offsetLeft + setLeftArrowOffset(is_trade ? setTradeArrowOffset(dropdown_offset) : current_offset) + } + + useEffect(() => setInitArrowOffset(), []) useEffect(() => { if (dropdownContainerRef) {