diff --git a/package-lock.json b/package-lock.json index 6181da192b4..d33a85fc6d3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,10 +11,10 @@ "dependencies": { "@artsy/fresnel": "^6.2.1", "@builder.io/partytown": "^0.8.1", - "@deriv-com/blocks": "^0.41.0", + "@deriv-com/blocks": "^0.42.0", "@deriv-com/components": "^0.26.0", "@deriv-com/hooks": "^0.9.0", - "@deriv-com/providers": "^0.9.0", + "@deriv-com/providers": "^0.10.0", "@deriv/analytics": "^1.4.3", "@deriv/deriv-api": "^1.0.13", "@deriv/quill-design": "^1.2.6", @@ -2793,9 +2793,9 @@ } }, "node_modules/@deriv-com/blocks": { - "version": "0.41.0", - "resolved": "https://npm.pkg.github.com/download/@deriv-com/blocks/0.41.0/eea88845c3613bd9bc1d80517d69080f5faeffe5", - "integrity": "sha512-smf5745h4lTWsJHaaqRjxY87aTfrPpxC+AfJN46Kuzbm45RcJHjAZvZkQUbdaxjXBh8CUYBGDsdUgX4dDMCdvg==" + "version": "0.42.0", + "resolved": "https://npm.pkg.github.com/download/@deriv-com/blocks/0.42.0/3b6b77f9174cd45f50f997101639febb34c1d7c1", + "integrity": "sha512-9w9EGVQ/B1+5mcQOVlDLkhjoLQRO6twclTXvrGWACCxFeG3o/mQ3y+RtnMUagXgwbVInBrcm+SeSa5CIvW/WhA==" }, "node_modules/@deriv-com/components": { "version": "0.26.0", @@ -2808,9 +2808,9 @@ "integrity": "sha512-EPbqW9uhH08mIU1xOD9q/qaGeTPuFRwP9XdTvqRfPaIH0zzTw2s+GJ5rSeAQh6eVAvhm0dttz48GilI8OwbxCQ==" }, "node_modules/@deriv-com/providers": { - "version": "0.9.0", - "resolved": "https://npm.pkg.github.com/download/@deriv-com/providers/0.9.0/4e92df6f8bb390733ff7f4edcd99aeed3183fc88", - "integrity": "sha512-N4JDK8RR6pWVPKR6Ho1RZy4ikRVuaGrDTLyTeY5uJjQACbqu+yGjSPib/pEGNhdqCH9ocwTnIpn+I8zkWiA8aw==" + "version": "0.10.0", + "resolved": "https://npm.pkg.github.com/download/@deriv-com/providers/0.10.0/8e77bc95f5058c59ba665e58585091f270e4d94b", + "integrity": "sha512-FE40EqmS6cmi4JWQurThE/mQDZesg6iBDRfTTwE5YKnc4w+2EqsO8Eigm4vO79elV3iUkvLLeU5Eawv66uwzqQ==" }, "node_modules/@deriv/analytics": { "version": "1.4.3", diff --git a/package.json b/package.json index 3602b7dce62..f8ee70a6eda 100644 --- a/package.json +++ b/package.json @@ -6,10 +6,10 @@ "dependencies": { "@artsy/fresnel": "^6.2.1", "@builder.io/partytown": "^0.8.1", - "@deriv-com/blocks": "^0.41.0", + "@deriv-com/blocks": "^0.42.0", "@deriv-com/components": "^0.26.0", "@deriv-com/hooks": "^0.9.0", - "@deriv-com/providers": "^0.9.0", + "@deriv-com/providers": "^0.10.0", "@deriv/analytics": "^1.4.3", "@deriv/deriv-api": "^1.0.13", "@deriv/quill-design": "^1.2.6", diff --git a/src/features/pages/home/footer/banner-and-awards.tsx b/src/features/pages/home/footer/banner-and-awards.tsx index d5cbd7bad16..71814c90dd1 100644 --- a/src/features/pages/home/footer/banner-and-awards.tsx +++ b/src/features/pages/home/footer/banner-and-awards.tsx @@ -5,42 +5,46 @@ import { DerivProductDerivGoBrandLightLogoHorizontalIcon } from '@deriv/quill-ic import { StaticImage } from 'gatsby-plugin-image' import DownloadBadges from './download' import { Localize, localize } from 'components/localization' +import useRegion from 'components/hooks/use-region' export const DerivGoBannerAndAwards = () => { + const { is_row } = useRegion() return (
-
-
-
-
- - - - + {is_row && ( +
+
+
+
+ + + + +
+ + +
- - - -
-
- - - - +
+ + + + +
+
- -
+ )}
, + target: '_blank', }, { id: 6, href: '/dbot', text: }, { id: 7, href: 'https://bot.deriv.com/', text: , + target: '_blank', }, ], }, @@ -263,6 +265,225 @@ export const footerNavData: FooterItems[] = [ }, ] +export const EuFooterNavData: FooterItems[] = [ + { + id: 0, + layers: [ + { + id: 0, + header: , + type: 'link', + items: [ + { + id: 0, + href: '/who-we-are', + text: , + }, + { + id: 1, + href: '/why-choose-us', + text: , + }, + { + id: 3, + href: '/our-principles', + text: , + }, + { + id: 4, + href: '/partners', + text: , + }, + { + id: 5, + href: '/contact_us', + text: , + }, + { id: 6, href: '/careers', text: }, + { + id: 7, + href: 'https://derivlife.com', + text: , + }, + ], + }, + ], + }, + { + id: 1, + layers: [ + { + id: 0, + header: , + type: 'link', + items: [ + { + id: 0, + href: '/trade-types/cfds', + text: , + }, + { + id: 1, + href: '/trade-types/multiplier', + text: , + }, + ], + }, + { + id: 1, + header: , + type: 'link', + items: [ + { + id: 0, + href: '/markets/forex', + text: , + }, + { + id: 1, + href: '/markets/synthetic', + text: , + }, + { + id: 2, + href: '/markets/stock', + text: , + }, + { + id: 3, + href: '/markets/exchange-traded-funds', + text: , + }, + { + id: 4, + href: '/markets/cryptocurrencies', + text: , + }, + { + id: 5, + href: '/markets/commodities', + text: , + }, + ], + }, + ], + }, + { + id: 2, + layers: [ + { + id: 0, + header: , + type: 'link', + items: [ + { id: 0, href: '/dmt5', text: }, + { + id: 1, + href: '/dtrader', + text: , + }, + ], + }, + ], + }, + { + id: 3, + layers: [ + { + id: 0, + header: , + type: 'link', + items: [ + { + id: 0, + href: '/help-centre', + text: , + }, + { + id: 1, + href: 'https://community.deriv.com/', + text: , + }, + { + id: 2, + href: '/payment-methods', + text: , + }, + { + id: 3, + href: 'https://deriv.statuspage.io/', + text: , + }, + { + id: 4, + href: 'https://blog.deriv.com/', + text: , + }, + ], + }, + ], + }, + { + id: 4, + layers: [ + { + id: 0, + header: , + type: 'link', + items: [ + { + id: 0, + href: '/regulatory', + text: , + }, + { + id: 1, + href: '/terms-and-conditions', + text: , + }, + { + id: 2, + href: '/responsible', + text: , + }, + ], + }, + { + id: 1, + header: , + type: 'link', + items: [ + { + id: 0, + href: '/partners/deriv-prime', + text: , + }, + { + id: 1, + href: '/partners/affiliate-ib', + text: , + }, + { + id: 3, + href: 'https://api.deriv.com/', + text: , + }, + ], + }, + ], + }, + { + id: 5, + layers: [ + { + id: 0, + type: 'node', + node: , + }, + ], + }, +] + export const warnText = ( ) diff --git a/src/features/pages/home/footer/index.tsx b/src/features/pages/home/footer/index.tsx index d1c4f03277e..25ecdd40c36 100644 --- a/src/features/pages/home/footer/index.tsx +++ b/src/features/pages/home/footer/index.tsx @@ -1,10 +1,12 @@ import React from 'react' import { Footer } from '@deriv-com/blocks' -import { footerNavData, socialButtons, warnText } from './data' +import { EuFooterNavData, RowFooterNavData, socialButtons, warnText } from './data' import { DerivGoBannerAndAwards } from './banner-and-awards' import { DescriptionContent } from './description' +import useRegion from 'components/hooks/use-region' export const ROWFooter = () => { + const { is_eu } = useRegion() return ( { bannerAndAwards={DerivGoBannerAndAwards} descriptionContent={DescriptionContent} > - + ) } diff --git a/src/features/pages/home/index.tsx b/src/features/pages/home/index.tsx index 28aacf7a779..7a0209ee1b4 100644 --- a/src/features/pages/home/index.tsx +++ b/src/features/pages/home/index.tsx @@ -1,7 +1,13 @@ +/* eslint-disable @typescript-eslint/ban-ts-comment */ import React, { useCallback } from 'react' import { PageLayout } from '@deriv-com/components' import { BreakpointProvider, ThemeProvider } from '@deriv/quill-design' -import { LanguageProvider } from '@deriv-com/providers' +import { + LanguageProvider, + SharedLinkProvider, + SharedLinkProps, + SharedLink, +} from '@deriv-com/providers' import Layout from 'features/components/templates/layout' import ROWFooter from './footer' import LiveMarketSection from './live-pricing-migration' @@ -19,7 +25,7 @@ import { langItemsROW } from './data' import { useOpenLiveChat } from 'components/hooks/use-open-live-chat-redirection' import useLangSwitcher from 'features/components/molecules/language-switcher/useLangSwitcher' import { useLangDirection } from 'components/hooks/use-lang-direction' -import { LocaleContext } from 'components/localization' +import { LocaleContext, LocalizedLink } from 'components/localization' const HomePage = () => { useOpenLiveChat(true) @@ -43,32 +49,49 @@ const HomePage = () => { }, [onSwitchLanguage], ) + + const GatsbySharedLink: SharedLink = ({ href = '/', ...rest }: SharedLinkProps) => { + const link = href as `/${string}` + const isExternalUrl = /(http(s?)):\/\//i.test(link.toString()) + if (isExternalUrl) { + return ( + // @ts-ignore + + ) + } + return ( + // @ts-ignore + + ) + } return ( - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + ) } diff --git a/src/features/pages/home/navigation/data.tsx b/src/features/pages/home/navigation/data.tsx index eb29fec2ea6..1a3905aaf17 100644 --- a/src/features/pages/home/navigation/data.tsx +++ b/src/features/pages/home/navigation/data.tsx @@ -128,6 +128,7 @@ export const mainRowNavItems: NavLinkItems = { description: ( ), + target: '_blank', }, ], }, @@ -197,6 +198,7 @@ export const mainRowNavItems: NavLinkItems = { description: ( ), + target: '_blank', }, ], }, @@ -335,6 +337,7 @@ export const mainRowNavItems: NavLinkItems = { text: , type: 'direct', external: true, + target: '_blank', }, ], }, @@ -360,6 +363,7 @@ export const mainRowNavItems: NavLinkItems = { text: , type: 'direct', external: true, + target: '_blank', }, { id: 2, @@ -396,6 +400,7 @@ export const mainRowNavItems: NavLinkItems = { text: , type: 'direct', external: true, + target: '_blank', }, ], }, @@ -470,3 +475,354 @@ export const mainRowNavItems: NavLinkItems = { ], }, } + +export const mainEuNavItems: NavLinkItems = { + trade: { + id: 0, + type: 'nav-dropdown', + text: , + columns: [ + { + id: 0, + header: { + text: , + type: 'text', + }, + items: [ + { + id: 0, + href: '/trade-types/cfds', + text: , + type: 'direct', + icon: , + description: ( + + ), + }, + { + id: 2, + href: '/trade-types/multiplier', + text: , + type: 'direct', + icon: , + description: ( + + ), + }, + ], + }, + { + id: 1, + header: { + text: , + type: 'text', + }, + items: [ + { + id: 0, + href: '/dmt5', + text: , + type: 'direct', + icon: ( + + ), + description: ( + + ), + }, + ], + }, + { + id: 2, + header: { + text: null, + type: 'text', + }, + items: [ + { + id: 0, + href: '/dtrader', + text: , + type: 'direct', + icon: ( + + ), + description: ( + + ), + }, + ], + }, + ], + }, + markets: { + id: 1, + type: 'nav-dropdown', + text: , + columns: [ + { + id: 0, + items: [ + { + id: 0, + href: '/markets/forex', + text: , + type: 'direct', + icon: , + description: ( + + ), + }, + { + id: 1, + href: '/markets/synthetic', + text: , + type: 'direct', + icon: , + description: ( + + ), + }, + { + id: 2, + href: '/markets/stock', + text: , + type: 'direct', + icon: , + description: ( + + ), + }, + ], + }, + { + id: 1, + items: [ + { + id: 0, + href: '/markets/commodities', + text: , + type: 'direct', + icon: , + description: ( + + ), + }, + { + id: 1, + href: '/markets/cryptocurrencies', + text: , + type: 'direct', + icon: , + description: ( + + ), + }, + { + id: 2, + href: '/markets/exchange-traded-funds', + text: , + type: 'direct', + icon: , + description: ( + + ), + }, + ], + }, + ], + }, + 'about-us': { + id: 2, + type: 'nav-dropdown', + text: , + columns: [ + { + id: 0, + items: [ + { + id: 0, + href: '/who-we-are', + text: , + type: 'direct', + }, + { + id: 1, + href: '/regulatory', + text: , + type: 'direct', + isDesktopNavOnly: true, + }, + { + id: 2, + href: '/why-choose-us', + text: , + type: 'direct', + }, + { + id: 3, + href: '/partners', + text: , + type: 'direct', + }, + ], + }, + { + id: 1, + items: [ + { + id: 0, + href: '/contact_us', + text: , + type: 'direct', + }, + { + id: 1, + href: '/careers', + text: , + type: 'direct', + }, + { + id: 2, + href: 'https://derivlife.com', //need to update target/type in link component + text: , + type: 'direct', + external: true, + target: '_blank', + }, + ], + }, + ], + }, + resources: { + id: 3, + type: 'nav-dropdown', + text: , + columns: [ + { + id: 0, + items: [ + { + id: 0, + href: '/help-centre', + text: , + type: 'direct', + }, + { + id: 1, + href: 'https://community.deriv.com/', //need to update target/type in link component + text: , + type: 'direct', + external: true, + target: '_blank', + }, + { + id: 2, + href: '/trader-tools', + text: , + type: 'direct', + }, + { + id: 3, + href: '/payment-methods', + text: , + type: 'direct', + }, + ], + }, + { + id: 1, + items: [ + { + id: 0, + href: '/dmt5-trading-signals', + text: , + type: 'direct', + }, + { + id: 1, + href: 'https://deriv.statuspage.io/', //need to update target/type in link component + text: , + type: 'direct', + }, + { + id: 2, + href: 'https://blog.deriv.com/', //need to update target/type in link component + text: , + type: 'direct', + external: true, + target: '_blank', + }, + ], + }, + ], + }, + legal: { + id: 4, + type: 'nav-dropdown', + text: , + isMobileNavOnly: true, + columns: [ + { + id: 0, + items: [ + { + id: 0, + href: '/regulatory', + text: , + type: 'direct', + }, + { + id: 1, + href: '/terms-and-conditions', + text: , + type: 'direct', + }, + { + id: 2, + href: '/responsible', + text: , + type: 'direct', + }, + ], + }, + ], + }, + partners: { + id: 5, + type: 'nav-dropdown', + text: , + isMobileNavOnly: true, + columns: [ + { + id: 0, + items: [ + { + id: 0, + href: '/partners/deriv-prime', + text: , + type: 'direct', + }, + { + id: 1, + href: '/partners/affiliate-ib', + text: , + type: 'direct', + }, + { + id: 3, + href: 'https://api.deriv.com/', //need to update target/type in link component + text: , + type: 'direct', + }, + ], + }, + ], + }, +} diff --git a/src/features/pages/home/navigation/index.tsx b/src/features/pages/home/navigation/index.tsx index d66db812be2..b3a8a607c16 100644 --- a/src/features/pages/home/navigation/index.tsx +++ b/src/features/pages/home/navigation/index.tsx @@ -2,14 +2,16 @@ import React from 'react' import { NavigationBlock } from '@deriv-com/blocks' import MainNavigationButtons from './nav.buttons' import MainNavigationLogo from './nav.logo' -import { mainRowNavItems } from './data' +import { mainEuNavItems, mainRowNavItems } from './data' +import useRegion from 'components/hooks/use-region' const MainRowNavigation = () => { + const { is_eu } = useRegion() return ( ) } diff --git a/src/translations/ach.json b/src/translations/ach.json index 80ab434fe30..b5969148487 100644 --- a/src/translations/ach.json +++ b/src/translations/ach.json @@ -4603,4 +4603,4 @@ "-1165835520": "crwdns3565842:0crwdne3565842:0", "-651384976": "crwdns3565844:0crwdne3565844:0", "-1033881248": "crwdns3565846:0crwdne3565846:0" -} \ No newline at end of file +} diff --git a/src/translations/ar.json b/src/translations/ar.json index f4a1c8ce751..022c9ffb212 100644 --- a/src/translations/ar.json +++ b/src/translations/ar.json @@ -4603,4 +4603,4 @@ "-1165835520": "موظف", "-651384976": "الجنسيات", "-1033881248": "شاهد صفقاتنا المفتوحة" -} \ No newline at end of file +} diff --git a/src/translations/bn.json b/src/translations/bn.json index c8845361bce..2fd2e411871 100644 --- a/src/translations/bn.json +++ b/src/translations/bn.json @@ -4603,4 +4603,4 @@ "-1165835520": "কর্মচারী", "-651384976": "জাতীয়তা", "-1033881248": "আমাদের ওপেন পজিশন দেখুন" -} \ No newline at end of file +} diff --git a/src/translations/de.json b/src/translations/de.json index 00e096d26bd..e76661e2866 100644 --- a/src/translations/de.json +++ b/src/translations/de.json @@ -4603,4 +4603,4 @@ "-1165835520": "Mitarbeiter", "-651384976": "Nationalitäten", "-1033881248": "Sehen Sie unsere offenen Stellen" -} \ No newline at end of file +} diff --git a/src/translations/es.json b/src/translations/es.json index 9092932b77f..7f4be97cc4a 100644 --- a/src/translations/es.json +++ b/src/translations/es.json @@ -4603,4 +4603,4 @@ "-1165835520": "empleados", "-651384976": "nacionalidades", "-1033881248": "Vea nuestros puestos disponibles" -} \ No newline at end of file +} diff --git a/src/translations/fr.json b/src/translations/fr.json index b91950ee762..57b3a6255ce 100644 --- a/src/translations/fr.json +++ b/src/translations/fr.json @@ -4603,4 +4603,4 @@ "-1165835520": "employés", "-651384976": "nationalités", "-1033881248": "Voir nos postes vacants" -} \ No newline at end of file +} diff --git a/src/translations/it.json b/src/translations/it.json index d6efca18223..43bf0ee4a06 100644 --- a/src/translations/it.json +++ b/src/translations/it.json @@ -4603,4 +4603,4 @@ "-1165835520": "dipendenti", "-651384976": "nazionalità", "-1033881248": "Vedi le posizioni aperte" -} \ No newline at end of file +} diff --git a/src/translations/ko.json b/src/translations/ko.json index 462a4b44aa4..3dc500917a4 100644 --- a/src/translations/ko.json +++ b/src/translations/ko.json @@ -4603,4 +4603,4 @@ "-1165835520": "직원", "-651384976": "출신 국적", "-1033881248": "채용 정보 보기" -} \ No newline at end of file +} diff --git a/src/translations/pl.json b/src/translations/pl.json index 597006a6960..3f241eb9996 100644 --- a/src/translations/pl.json +++ b/src/translations/pl.json @@ -4603,4 +4603,4 @@ "-1165835520": "pracowników", "-651384976": "narodowości", "-1033881248": "Zobacz nasze otwarte pozycje" -} \ No newline at end of file +} diff --git a/src/translations/pt.json b/src/translations/pt.json index 0e53818cb71..f1fcc4a9ce5 100644 --- a/src/translations/pt.json +++ b/src/translations/pt.json @@ -4603,4 +4603,4 @@ "-1165835520": "funcionários", "-651384976": "nacionalidades", "-1033881248": "Consulte as nossas vagas" -} \ No newline at end of file +} diff --git a/src/translations/ru.json b/src/translations/ru.json index d7496420371..4bf54ca62d3 100644 --- a/src/translations/ru.json +++ b/src/translations/ru.json @@ -4603,4 +4603,4 @@ "-1165835520": "сотрудников", "-651384976": "национальностей", "-1033881248": "Смотреть вакансии" -} \ No newline at end of file +} diff --git a/src/translations/si.json b/src/translations/si.json index 67eaa37a733..d4b85b1bd36 100644 --- a/src/translations/si.json +++ b/src/translations/si.json @@ -4603,4 +4603,4 @@ "-1165835520": "සේවකයින්", "-651384976": "ජාතීන්", "-1033881248": "අපගේ විවෘත ස්ථාන බලන්න" -} \ No newline at end of file +} diff --git a/src/translations/sw.json b/src/translations/sw.json index 6f6ed9d4885..2d6155ea256 100644 --- a/src/translations/sw.json +++ b/src/translations/sw.json @@ -4603,4 +4603,4 @@ "-1165835520": "wafanyakazi", "-651384976": "mataifa", "-1033881248": "Tazama nafasi zetu zilizo wazi" -} \ No newline at end of file +} diff --git a/src/translations/th.json b/src/translations/th.json index a71bcf8a4fd..135c9bcc172 100644 --- a/src/translations/th.json +++ b/src/translations/th.json @@ -4603,4 +4603,4 @@ "-1165835520": "พนักงาน", "-651384976": "สัญชาติ", "-1033881248": "ดูตำแหน่งงานที่เปิดรับ" -} \ No newline at end of file +} diff --git a/src/translations/tr.json b/src/translations/tr.json index c917a938de0..1a3d4ea4f1c 100644 --- a/src/translations/tr.json +++ b/src/translations/tr.json @@ -4603,4 +4603,4 @@ "-1165835520": "çalışanlar", "-651384976": "milliyetler", "-1033881248": "Açık pozisyonlarımızı görün" -} \ No newline at end of file +} diff --git a/src/translations/vi.json b/src/translations/vi.json index 773db5bfffe..7be9ddc155b 100644 --- a/src/translations/vi.json +++ b/src/translations/vi.json @@ -4603,4 +4603,4 @@ "-1165835520": "nhân viên", "-651384976": "dân tộc", "-1033881248": "Xem các vị trí đang tuyển" -} \ No newline at end of file +} diff --git a/src/translations/zh_cn.json b/src/translations/zh_cn.json index 27fad04dbfd..72e474e0abc 100644 --- a/src/translations/zh_cn.json +++ b/src/translations/zh_cn.json @@ -4603,4 +4603,4 @@ "-1165835520": "雇员", "-651384976": "国籍", "-1033881248": "查看空缺职位" -} \ No newline at end of file +} diff --git a/src/translations/zh_tw.json b/src/translations/zh_tw.json index 98186c7fa1f..589ee47c1ff 100644 --- a/src/translations/zh_tw.json +++ b/src/translations/zh_tw.json @@ -4603,4 +4603,4 @@ "-1165835520": "僱員", "-651384976": "國籍", "-1033881248": "查看空缺職位" -} \ No newline at end of file +}