From 7d1e86a63ae8e20d8e7ad3248006640f0328f189 Mon Sep 17 00:00:00 2001 From: Viet Date: Wed, 25 Dec 2024 14:21:14 +0700 Subject: [PATCH 1/5] Split consent --- README.md | 230 -- package.json | 16 +- src/AnalyticsNext/index.tsx | 73 +- src/AnalyticsReact/index.tsx | 62 +- src/Assets/aesirx.svg | 9 - src/Assets/arrow.svg | 10 - src/Assets/bg.png | Bin 153740 -> 0 bytes src/Assets/check_circle.svg | 5 - src/Assets/check_line.svg | 3 - src/Assets/checkbox.svg | 3 - src/Assets/checkbox_active.svg | 4 - src/Assets/concordium.svg | 4 - src/Assets/concordium_logo.png | Bin 484 -> 0 bytes src/Assets/ethereum_logo.png | Bin 682 -> 0 bytes src/Assets/no.svg | 3 - src/Assets/no_white.svg | 3 - src/Assets/privacy.svg | 5 - src/Assets/shield_of_privacy.png | Bin 2129 -> 0 bytes src/Assets/upgrade.svg | 6 - src/Assets/wallet_consent.png | Bin 545 -> 0 bytes src/Assets/wallet_shield_consent.png | Bin 2974 -> 0 bytes src/Assets/web3id.svg | 6 - src/Assets/yes.svg | 4 - src/Components/Connect.tsx | 119 - src/Components/Consent.tsx | 962 -------- src/Components/ConsentCustom.tsx | 1476 ------------ src/Components/ConsentHeader.tsx | 79 - src/Components/Ethereum/connect.tsx | 40 - src/Components/Ethereum/index.tsx | 148 -- src/Components/LoadingStatus.tsx | 69 - src/Components/OptInConsent.tsx | 397 ---- src/Components/Terms.tsx | 804 ------- src/Hooks/config.ts | 22 - src/Hooks/useConsentStatus.ts | 215 -- src/analytics.tsx | 233 +- src/index.ts | 1 - src/styles/color-mode.scss | 61 - src/styles/style.scss | 588 ----- src/styles/variables-dark.scss | 6 - src/translations/dk/common.json | 131 -- src/translations/en/common.json | 131 -- src/translations/es/common.json | 131 -- src/translations/fr/common.json | 131 -- src/translations/hr/common.json | 131 -- src/translations/index.js | 23 - src/translations/nl/common.json | 131 -- src/translations/th/common.json | 131 -- src/translations/ua/common.json | 131 -- src/translations/vi/common.json | 131 -- src/utils/AnalyticsContextProvider.tsx | 4 +- src/utils/Concordium.ts | 77 - src/utils/I18nextProvider.tsx | 101 - src/utils/config.ts | 44 - src/utils/consent.ts | 400 ---- src/utils/index.ts | 85 +- yarn.lock | 2952 +----------------------- 56 files changed, 55 insertions(+), 10476 deletions(-) delete mode 100644 src/Assets/aesirx.svg delete mode 100644 src/Assets/arrow.svg delete mode 100644 src/Assets/bg.png delete mode 100644 src/Assets/check_circle.svg delete mode 100644 src/Assets/check_line.svg delete mode 100644 src/Assets/checkbox.svg delete mode 100644 src/Assets/checkbox_active.svg delete mode 100644 src/Assets/concordium.svg delete mode 100644 src/Assets/concordium_logo.png delete mode 100644 src/Assets/ethereum_logo.png delete mode 100644 src/Assets/no.svg delete mode 100644 src/Assets/no_white.svg delete mode 100644 src/Assets/privacy.svg delete mode 100644 src/Assets/shield_of_privacy.png delete mode 100644 src/Assets/upgrade.svg delete mode 100644 src/Assets/wallet_consent.png delete mode 100644 src/Assets/wallet_shield_consent.png delete mode 100644 src/Assets/web3id.svg delete mode 100644 src/Assets/yes.svg delete mode 100644 src/Components/Connect.tsx delete mode 100644 src/Components/Consent.tsx delete mode 100644 src/Components/ConsentCustom.tsx delete mode 100644 src/Components/ConsentHeader.tsx delete mode 100644 src/Components/Ethereum/connect.tsx delete mode 100644 src/Components/Ethereum/index.tsx delete mode 100644 src/Components/LoadingStatus.tsx delete mode 100644 src/Components/OptInConsent.tsx delete mode 100644 src/Components/Terms.tsx delete mode 100644 src/Hooks/config.ts delete mode 100644 src/Hooks/useConsentStatus.ts delete mode 100644 src/styles/color-mode.scss delete mode 100644 src/styles/style.scss delete mode 100644 src/styles/variables-dark.scss delete mode 100644 src/translations/dk/common.json delete mode 100644 src/translations/en/common.json delete mode 100644 src/translations/es/common.json delete mode 100644 src/translations/fr/common.json delete mode 100644 src/translations/hr/common.json delete mode 100644 src/translations/index.js delete mode 100644 src/translations/nl/common.json delete mode 100644 src/translations/th/common.json delete mode 100644 src/translations/ua/common.json delete mode 100644 src/translations/vi/common.json delete mode 100644 src/utils/Concordium.ts delete mode 100644 src/utils/I18nextProvider.tsx delete mode 100644 src/utils/config.ts delete mode 100644 src/utils/consent.ts diff --git a/README.md b/README.md index be29f954..89db1cfd 100644 --- a/README.md +++ b/README.md @@ -31,13 +31,6 @@ Follow the instructions in: [https://github.com/aesirxio/analytics-1stparty](htt 2. `CLIENT_ID` replace this with the provided `CLIENT_ID` from https://dapp.shield.aesirx.io/ 3. `CLIENT_SECRET` replace this with the provided `CLIENT_SECRET` fromhttps://dapp.shield.aesirx.io/ -##### Disable Consent Popup: -``` - -``` - #### Usage in ReactJS `npm i aesirx-analytics` @@ -54,12 +47,6 @@ REACT_APP_SSO_CLIENT_SECRET=[REPLACE THIS WITH THE PROVIDED CLIENT_SECRET] `CLIENT_SECRET` replace this with the provided `CLIENT_SECRET` fromhttps://dapp.shield.aesirx.io/ ``` -##### Disable Consent Popup: -add this environment variable to `.env` -``` -REACT_APP_DISABLE_ANALYTICS_CONSENT=true -``` - ###### With react-router-dom v5: Create AnalyticsContainer component: @@ -239,220 +226,3 @@ const CustomEvent = () => { (`endPoint` is the link to your 1st party server which must be installed) (`referer` is the referer domain) - -## Customize CSS for Consent modal -Please follow below CSS example: -``` - // Customize toast - .aesirxconsent .toast { - --aesirxconsent-toast-font-size: 16px; - --aesirxconsent-toast-padding-x: 0.75rem; - --aesirxconsent-toast-padding-y: 0.5rem; - --aesirxconsent-toast-spacing: 1.5rem; - --aesirxconsent-toast-zindex: 1049; - } - // Customize button - .aesirxconsent .btn { - --aesirxconsent-btn-font-size: 16px; - --aesirxconsent-btn-padding-x: 0.75rem; - --aesirxconsent-btn-padding-y: 0.375rem; - --aesirxconsent-btn-font-weight: 400; - --aesirxconsent-btn-line-height: 1.5; - } - // Customize button success - .aesirxconsent .btn-success { - --aesirxconsent-btn-color: #000; - --aesirxconsent-btn-bg: #1ab394; - --aesirxconsent-btn-border-color: #1ab394; - --aesirxconsent-btn-hover-color: #000; - --aesirxconsent-btn-hover-bg: #3cbea4; - --aesirxconsent-btn-hover-border-color: #31bb9f; - --aesirxconsent-btn-focus-shadow-rgb: 22, 152, 126; - --aesirxconsent-btn-active-color: #000; - --aesirxconsent-btn-active-bg: #48c2a9; - --aesirxconsent-btn-active-border-color: #31bb9f; - --aesirxconsent-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --aesirxconsent-btn-disabled-color: #000; - --aesirxconsent-btn-disabled-bg: #1ab394; - --aesirxconsent-btn-disabled-border-color: #1ab394; - } - // To customize CSS for dark mode (Bootstrap dark mode) - [data-bs-theme=dark] .aesirxconsent { - color: #fff; - } -``` - - -## Choose template for Consent modal - -There is 5 template for Consent modal -1. default (recommend) - 1. Support Advance Consent Mode v2 -2. simple-consent-mode - 1. Support Basic Consent Mode v2 - -#### Usage in SSR site: -``` - -``` - -#### In ReactJS: - -add this environment variable to `.env` -``` -REACT_APP_CONSENT_LAYOUT=default -``` - -#### In NextJS: - -add this environment variable to `.env` -``` -NEXT_PUBLIC_CONSENT_LAYOUT=default -``` - -## Opt-in Consent - -#### Usage in SSR site: -``` - -``` - -(We also provive option `replaceAnalyticsConsent` to replace Analytics Consent with Opt-in Consent) -``` - -``` - -#### In ReactJS: -``` -const OptInConsent = React.lazy( - () => import('./OptInConsent').then(module => ({ default: module.OptInConsent })) -); -const ConsentComponent = () => { - const [showModal, setShowModal] = useState(false); - const handleOpen = () => { - setShowModal(true); - }; - const handleConsent = () => { - setShowModal(false); - }; - const handleReject = () => { - setShowModal(false); - }; - return ( - <> - YOUR_CONTENT_INPUT_HERE`, - show: showModal, - handleConsent: handleConsent, - handleReject: handleReject - }, - ]} - /> - - ); -}; -``` -(We also provive option `replaceAnalyticsConsent` to replace Analytics Consent with Opt-in Consent) -To use this in ReactJS please add `isOptInReplaceAnalytics` to our provider first -``` - - {children} - -``` -``` -YOUR_CONTENT_INPUT_HERE`, - show: showModal, - handleConsent: handleConsent, - handleReject: handleReject, - replaceAnalyticsConsent: "true" - }, - ]} -/> -``` -#### In NextJS: -``` -import dynamic from "next/dynamic"; -const OptInConsent = dynamic( - () => import("aesirx-analytics").then((module) => module.OptInConsent), - { - loading: () =>
Loading...
, - ssr: false, - } -); - -const ConsentComponent = () => { - const [showModal, setShowModal] = useState(false); - const handleOpen = () => { - setShowModal(true); - }; - const handleConsent = () => { - setShowModal(false); - }; - const handleReject = () => { - setShowModal(false); - }; - return ( - <> - YOUR_CONTENT_INPUT_HERE`, - show: showModal, - handleConsent: handleConsent, - handleReject: handleReject - }, - ]} - /> - - ); -}; -``` -(We also provive option `replaceAnalyticsConsent` to replace Analytics Consent with Opt-in Consent) -To use this in NextJS please add `isOptInReplaceAnalytics` to our provider first -``` - - <[YOUR-COMPONENT]/> - -``` -``` -YOUR_CONTENT_INPUT_HERE`, - show: showModal, - handleConsent: handleConsent, - handleReject: handleReject, - replaceAnalyticsConsent: "true" - }, - ]} -/> -``` \ No newline at end of file diff --git a/package.json b/package.json index 4d2f457f..2f4d25a4 100644 --- a/package.json +++ b/package.json @@ -9,30 +9,16 @@ "types": "dist/index.d.ts", "type": "module", "dependencies": { - "@concordium/browser-wallet-api-helpers": "3.0.1", - "@concordium/react-components": "0.6.1", - "@concordium/web-sdk": "7.0.4-rc.3", - "@web3modal/ethereum": "^2.7.0", - "@web3modal/react": "^2.7.0", - "aesirx-sso": "^1.4.18", - "axios": "^1.7.4", "bootstrap": "^5.3.2", "bowser": "^2.11.0", "buffer": "^6.0.3", "ethers": "^6.6.5", - "i18next": "^23.6.0", - "i18next-browser-languagedetector": "^7.2.1", "murmurhash-js": "^1.0.0", "next": "^14.2.10", "query-string": "^7.1.1", "react": "^18.3.1", - "react-bootstrap": "^2.8.0", - "react-content-loader": "^7.0.0", - "react-device-detect": "^2.2.3", "react-dom": "18", - "react-select": "^5.8.0", - "react-toastify": "^9.1.3", - "wagmi": "^1.3.2" + "react-toastify": "^9.1.3" }, "scripts": { "dev": "NODE_ENV=development tsup --watch", diff --git a/src/AnalyticsNext/index.tsx b/src/AnalyticsNext/index.tsx index 8c039706..252f9944 100644 --- a/src/AnalyticsNext/index.tsx +++ b/src/AnalyticsNext/index.tsx @@ -1,90 +1,21 @@ -import React, { ReactNode, useEffect, useState } from 'react'; +import React, { ReactNode } from 'react'; import AnalyticsContextProvider from '../utils/AnalyticsContextProvider'; import AnalyticsHandle from './handle'; import { NextRouter } from 'next/router'; -import dynamic from 'next/dynamic'; -import { getConsentTemplate } from '../utils/consent'; - -const ConsentComponent = dynamic(() => import('../Components/Consent'), { ssr: false }); -const ConsentComponentCustom = dynamic(() => import('../Components/ConsentCustom'), { ssr: false }); interface AnalyticsNext { router: NextRouter; attributes: any; - oldLayout?: boolean; - loginApp?: any; - isLoggedApp?: boolean; - isOptInReplaceAnalytics?: boolean; children?: ReactNode; } -const AnalyticsNext = ({ - router, - attributes, - oldLayout = false, - loginApp, - isLoggedApp, - isOptInReplaceAnalytics = false, - children, -}: AnalyticsNext) => { - const [layout, setLayout] = useState( - process.env.NEXT_PUBLIC_CONSENT_LAYOUT ?? 'simple-consent-mode' - ); - const [gtagId, setGtagId] = useState(process.env.NEXT_PUBLIC_ANALYTICS_GTAG_ID); - const [gtmId, setGtmId] = useState(process.env.NEXT_PUBLIC_ANALYTICS_GTM_ID); - const [customConsentText, setCustomConsentText] = useState( - process.env.NEXT_PUBLIC_ANALYTICS_CONSENT_TEXT - ); - useEffect(() => { - const init = async () => { - const data: any = await getConsentTemplate( - process.env.NEXT_PUBLIC_ENDPOINT_ANALYTICS_URL, - window.location.host - ); - setLayout(data?.data?.template ?? process.env.NEXT_PUBLIC_CONSENT_LAYOUT); - setGtagId(data?.data?.gtag_id ?? process.env.NEXT_PUBLIC_ANALYTICS_GTAG_ID); - setGtmId(data?.data?.gtm_id ?? process.env.NEXT_PUBLIC_ANALYTICS_GTM_ID); - setCustomConsentText( - data?.data?.consent_text ?? process.env.NEXT_PUBLIC_ANALYTICS_CONSENT_TEXT - ); - }; - init(); - }, []); +const AnalyticsNext = ({ router, attributes, children }: AnalyticsNext) => { return ( <> {children} - {process.env.NEXT_PUBLIC_DISABLE_ANALYTICS_CONSENT !== 'true' && ( - <> - {oldLayout || layout === 'original' ? ( - - ) : ( - - )} - - )} diff --git a/src/AnalyticsReact/index.tsx b/src/AnalyticsReact/index.tsx index e26e5450..65fc0f9a 100644 --- a/src/AnalyticsReact/index.tsx +++ b/src/AnalyticsReact/index.tsx @@ -1,11 +1,7 @@ -import React, { ReactNode, Suspense, useEffect, useState } from 'react'; +import React, { ReactNode } from 'react'; import AnalyticsContextProvider from '../utils/AnalyticsContextProvider'; import AnalyticsHandle from './handle'; -import { getConsentTemplate } from '../utils/consent'; - -const ConsentComponent = React.lazy(() => import('../Components/Consent')); -const ConsentComponentCustom = React.lazy(() => import('../Components/ConsentCustom')); interface AnalyticsReact { location: { search: string; pathname: string }; @@ -15,65 +11,11 @@ interface AnalyticsReact { isOptInReplaceAnalytics?: boolean; } -const AnalyticsReact = ({ - location, - history, - oldLayout = false, - isOptInReplaceAnalytics = false, - children, -}: AnalyticsReact) => { - const [layout, setLayout] = useState( - process.env.REACT_APP_CONSENT_LAYOUT ?? 'simple-consent-mode' - ); - const [gtagId, setGtagId] = useState(process.env.REACT_APP_ANALYTICS_GTAG_ID); - const [gtmId, setGtmId] = useState(process.env.REACT_APP_ANALYTICS_GTM_ID); - const [customConsentText, setCustomConsentText] = useState( - process.env.REACT_APP_ANALYTICS_CONSENT_TEXT - ); - useEffect(() => { - const init = async () => { - const data: any = await getConsentTemplate( - process.env.REACT_APP_ENDPOINT_ANALYTICS_URL, - window.location.host - ); - setLayout(data?.data?.template ?? process.env.REACT_APP_CONSENT_LAYOUT); - setGtagId(data?.data?.gtag_id ?? process.env.REACT_APP_ANALYTICS_GTAG_ID); - setGtmId(data?.data?.gtm_id ?? process.env.REACT_APP_ANALYTICS_GTM_ID); - setCustomConsentText( - data?.data?.consent_text ?? process.env.REACT_APP_ANALYTICS_CONSENT_TEXT - ); - }; - init(); - }, []); +const AnalyticsReact = ({ location, history, children }: AnalyticsReact) => { return ( {children} - {process.env.REACT_APP_DISABLE_ANALYTICS_CONSENT !== 'true' && ( - }> - {oldLayout || layout === 'original' ? ( - - ) : ( - - )} - - )} ); diff --git a/src/Assets/aesirx.svg b/src/Assets/aesirx.svg deleted file mode 100644 index ee8e827a..00000000 --- a/src/Assets/aesirx.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/src/Assets/arrow.svg b/src/Assets/arrow.svg deleted file mode 100644 index e2aa5888..00000000 --- a/src/Assets/arrow.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/src/Assets/bg.png b/src/Assets/bg.png deleted file mode 100644 index 4062795c4095e884002ad86bfe27011625799d0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153740 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.ilaWz; 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

WgYl9&3 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 diff --git a/src/Assets/check_circle.svg b/src/Assets/check_circle.svg deleted file mode 100644 index 9bd75fdc..00000000 --- a/src/Assets/check_circle.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/Assets/check_line.svg b/src/Assets/check_line.svg deleted file mode 100644 index 7af6fb2a..00000000 --- a/src/Assets/check_line.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/Assets/checkbox.svg b/src/Assets/checkbox.svg deleted file mode 100644 index 793b6621..00000000 --- a/src/Assets/checkbox.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/Assets/checkbox_active.svg b/src/Assets/checkbox_active.svg deleted file mode 100644 index 1abde84e..00000000 --- a/src/Assets/checkbox_active.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/Assets/concordium.svg b/src/Assets/concordium.svg deleted file mode 100644 index a8d5b473..00000000 --- a/src/Assets/concordium.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/Assets/concordium_logo.png b/src/Assets/concordium_logo.png deleted file mode 100644 index 310c909410683cc8263372bfd113a93919df397e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 484 zcmVrpV6D}-Y*12^JFosmX;40tQWv-dM2J$LbT*E3j3W_9Dc}u7!vZ7$X@<)|@M}?O zzc=7oGY?3*5z5_@Uhvhv|Feic1JWE8An~L*xDtEp@Wc=7p_JVgWsP!1TOA}dh(~)V zWxEf83ZX^hZVWp?L>YD(N0of-;^E@ zk>GNMC@1S$j8j-RmU%YhZsaqG^0_^OkFfiaZpC(Q)UDN)x%h)7;X0UrK~c8EPE+6+ zcrRiB*^P1cH;v-&0SuGvUK|-`j&WQ@zLx9Yp^55iY7*vdzhs$CfqQZk%W@nB%82m5 zO;o4uXGFIwsj|=8O28WFsy2LRT QLjV8(07*qoM6N<$g52sb4gdfE diff --git a/src/Assets/no.svg b/src/Assets/no.svg deleted file mode 100644 index 444fcedc..00000000 --- a/src/Assets/no.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/Assets/no_white.svg b/src/Assets/no_white.svg deleted file mode 100644 index 4027d6a9..00000000 --- a/src/Assets/no_white.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/Assets/privacy.svg b/src/Assets/privacy.svg deleted file mode 100644 index 2be8d1a0..00000000 --- a/src/Assets/privacy.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/Assets/shield_of_privacy.png b/src/Assets/shield_of_privacy.png deleted file mode 100644 index 44ebcda56cfadbb4e4eacc105a556e5f636ac672..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2129 zcmV-X2(I^uP)U)n*HVJ?rNB|@yfDV;F#EB~#=+NOe;|+A^(BV~}b5;W`lV(()Lx(d$=d3p7 zt`wcab~q<=&T8YDpM@)z(4oT_;KHipjPi7Gaq$F+sLMi5R$0T}bB_^t=b(PSJDxSv z_uFInPYHBARaH4Y9uGMyJxfRX4idqjw0@S0nC03-Ci2U1{+*jh;1F zYW>hhcq$L>_f?nyNgr4L+5IGkqJ=Sx>4W=BOisP#0xX|)3`kT)A^)0xyF$v*#)J4n9)HK>7{ANA&v$jqopxHj3!C;IqRK&~FXr>`+w32F;uU zLNBPNMSF{WJ74f~42e+u()Scj00*^uJqE2S_d|hc#8o36&q>>Q-r?McEY;5~%O#sm zMIUaM~Wo4dmQL^czI@MaFIn z*dVjw;W>R1{LWNg7V7RZHlg0CtuI0hT^3poZky;n(XVkCa~{an`u4bPr0DDHof){{YA!cr^cKq8TTSPGVW(>gSkzd@4*-o z;S+j?ybS0IML)OnVP3+*&}F9TXsqJEdMB|E-6FP?>@G?1=n_-O&BB4xV%u7En06Cd zup$dpQnO5^21jznnCQ6J%vtZbFDW_hZ?Uro-+{B%^fAKYEGah0480NUh+1%)4xA!a z7M=u$jlrLXvN3R0R9VT;O$VMjXWd3*=&aQ@#{JwgYmT<_6kKQRek^A-?TGt881~yY zGdX#W@X8W1IBk%IA(cir0;LplS z`rq>Vuo0;94fwMtmDJnBO7KnZiYJZw$-$pxC*W__>BjjnU@Hw#CDh|RKOfQGsB1`Y z%_{h%Z5@uC=lux|-%B5X7Z=ey8Zw?-`x?9*NY_Vr9#*UqaG#PTh0no^M_K4YY&s)eVh{wmDT7Tx)2!(AWmwxQ`6{i+Jjb&ML_t zSJXfjYZ!nuGN|V-Bki@$8qikNXYhPH1;1%d)~mF^10>rtrau<#@tPwlL%@c&N6X@c6Z_fzY-Mg z-=hzWg$i+r)}L? z88kVC8{=1Fi<$(UNILV7j_+y$%iqv&G9!?Mn^}t(>py5I`I(2bd@f6IRQ-9l8{B`#TD8q3 zrU|BhZPFHGvXjofr$C({PJXe@(T@t*XRa?5&|kDHxve}kAQ&Jyv ziwd3BN@so9u^R&5c>pZ~{jKE4sL#O%1inM_c`PKKG%qm3_(YY4R7a2-we{vTh~lGVHx*<4nueype#rFiW7yO zb*^9^9L3gTFA9jIA@7FiL)(s+-b#*3@D84Vv5O^V{RA~<9u+~SP>l)3F^=%;qK{lt zbD=@eWz1cRmrHUHa0Cui6iFMuCsr~j(|rJMOPO?;c&Zx)8HQ*|uywN9N(dGOM`OCM zqGt|17-al^7zE%L|B&f3mhs4SNAwoB529a!pUaWb!MbIy8n=ZK(gTO4x8!eQZEB5E z`^viA20y<aOp#b4u2T1;@x?N4js+_ zoTz$ed<@f}Lx(d09)Ck@UgZ7-9XfRQZD7YNxvZh$BaeRp*#uk(8I39L00000NkvXX Hu0mjfh`bD2 diff --git a/src/Assets/upgrade.svg b/src/Assets/upgrade.svg deleted file mode 100644 index 1ad8f85a..00000000 --- a/src/Assets/upgrade.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/src/Assets/wallet_consent.png b/src/Assets/wallet_consent.png deleted file mode 100644 index 8ba4f63dd24d861e9d350cfa082c32c7f30b6f70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 545 zcmV++0^a?JP)zNFIQXT zL0g4x7I*KGVB8N?gbz|+=k0nkZ(660BF>FkNIMwg#!KalaY(t6V!(qP;;uV=Vp>$r z$RupSY>Y=UiIsI&gh6wrHHyy7dozh;kUNQ>5v%Ds_a@D11tZ6CD$(iLg0kqDNM;@n zrpmrzfN~;kQFi7jebCt z9hfqNi2A9@>OJ-_Vlnz?T3=PDl*POcme7L!I^@Ur1vWvdOnFC07$1`#q;g}Dl1m5} zRb!VQ_S_ORzb7(!f2T;-R~thwVF4Jc^Z64YQ$A^{lFA j?4%S*1T&xZglK*Mkl~1$T~i^%00000NkvXXu0mjfB8TU> diff --git a/src/Assets/wallet_shield_consent.png b/src/Assets/wallet_shield_consent.png deleted file mode 100644 index f9614a420a075765fadc2605e0b5bf0ead266717..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2974 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 U9&)(Vga7~l07*qoM6N<$f~#ei7ytkO diff --git a/src/Assets/web3id.svg b/src/Assets/web3id.svg deleted file mode 100644 index e6b20b06..00000000 --- a/src/Assets/web3id.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/src/Assets/yes.svg b/src/Assets/yes.svg deleted file mode 100644 index ebb5e741..00000000 --- a/src/Assets/yes.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/Components/Connect.tsx b/src/Components/Connect.tsx deleted file mode 100644 index 21b1c15c..00000000 --- a/src/Components/Connect.tsx +++ /dev/null @@ -1,119 +0,0 @@ -import React, { Suspense, useState } from 'react'; -import { Modal } from 'react-bootstrap'; -import { isMobile, isDesktop, OsTypes, osName } from 'react-device-detect'; -import { BROWSER_WALLET, WALLET_CONNECT } from '../Hooks/config'; -import concordium_logo from '../Assets/concordium_logo.png'; -import { useTranslation } from 'react-i18next'; -import ConnectMetamask from './Ethereum/connect'; -import { useAccount } from 'wagmi'; -const ConnectModal = ({ - isConnecting, - handleOnConnect, - activeConnectorError, - activeConnectorType, - activeConnector, -}: any) => { - const [show, setShow] = useState(true); - - const handleClose = () => setShow(false); - const { t } = useTranslation(); - return ( - <> - - -

-
-

- {(window as any)?.aesirx_analytics_translate?.txt_please_connect_your_wallet ?? - t('txt_please_connect_your_wallet')} -

-
- Loading...}> - - -
-
- {isDesktop && ( - - )} - {osName !== OsTypes?.IOS ? ( - <> - - - ) : ( - <> - )} -
{' '} -
-
- - - - ); -}; - -const SSOEthereumApp = ({ handleOnConnect }: any) => { - const { isConnected } = useAccount({ - onConnect() { - handleOnConnect('', 'metamask'); - }, - }); - - return isConnected ? <> : ; -}; - -export default ConnectModal; diff --git a/src/Components/Consent.tsx b/src/Components/Consent.tsx deleted file mode 100644 index ce25d6b3..00000000 --- a/src/Components/Consent.tsx +++ /dev/null @@ -1,962 +0,0 @@ -/* eslint-disable no-case-declarations */ -import { - agreeConsents, - getConsents, - getMember, - getNonce, - getSignature, - getWalletNonce, - loadGtagScript, - loadGtmScript, - revokeConsents, - verifySignature, -} from '../utils/consent'; -import React, { Suspense, useContext, useEffect, useState } from 'react'; -import { Button, Form } from 'react-bootstrap'; -import useConsentStatus from '../Hooks/useConsentStatus'; -import '../styles/style.scss'; -import { TermsComponent } from './Terms'; -import { toast } from 'react-toastify'; - -import yes from '../Assets/yes.svg'; -import no from '../Assets/no.svg'; -import no_white from '../Assets/no_white.svg'; -import bg from '../Assets/bg.png'; -import privacy from '../Assets/privacy.svg'; - -import ContentLoader from 'react-content-loader'; -const SSOButton: any = React.lazy(() => - import('aesirx-sso').then((module) => ({ default: module.SSOButton })) -); -import { - MAINNET, - WithWalletConnector, - WalletConnectionProps, - useConnection, - useConnect, - ConnectorType, - stringMessage, - useGrpcClient, - TESTNET, -} from '@concordium/react-components'; -import { BROWSER_WALLET, WALLET_CONNECT } from '../Hooks/config'; -import { OsTypes, isDesktop, isMobile, osName } from 'react-device-detect'; -import { LoadingStatus } from './LoadingStatus'; -import ConnectModal from './Connect'; -import { AnalyticsContext } from '../utils/AnalyticsContextProvider'; -import { useTranslation } from 'react-i18next'; -import { useAccount, useSignMessage } from 'wagmi'; -import SSOEthereumProvider from './Ethereum'; -import { getWeb3ID } from '../utils/Concordium'; -declare global { - interface Window { - dataLayer: any; - } -} -declare const dataLayer: any[]; -interface WalletConnectionPropsExtends extends WalletConnectionProps { - endpoint: string; - aesirXEndpoint: string; - networkEnv?: string; - loginApp?: any; - isLoggedApp?: boolean; - gtagId: string; - gtmId: string; - layout?: string; -} -const ConsentComponent = ({ - endpoint, - aesirXEndpoint, - networkEnv, - loginApp, - isLoggedApp, - gtagId, - gtmId, - layout, -}: any) => { - return ( - - {(props) => ( -
- - - -
- )} -
- ); -}; -const ConsentComponentApp = (props: WalletConnectionPropsExtends) => { - const { - endpoint, - aesirXEndpoint, - loginApp, - isLoggedApp, - gtagId, - gtmId, - layout, - activeConnectorType, - activeConnector, - activeConnectorError, - connectedAccounts, - genesisHashes, - setActiveConnectorType, - network, - } = props; - const { setConnection } = useConnection(connectedAccounts, genesisHashes); - - const { isConnecting } = useConnect(activeConnector, setConnection); - - const handleOnConnect = async (connectorType: ConnectorType, network = 'concordium') => { - if (network === 'concordium') { - setActiveConnectorType(connectorType); - } - setLoading('done'); - }; - - const [ - uuid, - level, - connection, - account, - show, - setShow, - web3ID, - setWeb3ID, - handleLevel, - showRevoke, - handleRevoke, - ] = useConsentStatus(endpoint, layout, props); - - const [consents, setConsents] = useState([1, 2]); - const [loading, setLoading] = useState('done'); - const [loadingCheckAccount, setLoadingCheckAccount] = useState(false); - const [showExpandConsent, setShowExpandConsent] = useState(true); - const [showExpandRevoke, setShowExpandRevoke] = useState(false); - const [showBackdrop, setShowBackdrop] = useState(true); - const [consentTier4, setConsentTier4] = useState({}); - const analyticsContext = useContext(AnalyticsContext); - const { t } = useTranslation(); - const gRPCClient = useGrpcClient(network); - - // Metamask - const { address, connector } = useAccount(); - - const { signMessage } = useSignMessage({ - async onSuccess(data, variables) { - const signature = Buffer.from( - typeof data === 'object' && data !== null ? JSON.stringify(data) : data, - 'utf-8' - ).toString('base64'); - const jwt = sessionStorage.getItem('aesirx-analytics-jwt'); - if (variables?.message.indexOf('Revoke consent') > -1) { - // Revoke Metamask - const levelRevoke = sessionStorage.getItem('aesirx-analytics-revoke'); - const consentList = await getConsents(endpoint, uuid); - consentList.forEach(async (consent: any) => { - !consent?.expiration && - (await revokeConsents( - endpoint, - levelRevoke, - consent?.consent_uuid, - address, - signature, - web3ID, - jwt, - 'metamask' - )); - }); - setLoading('done'); - handleRevoke(false); - setShowExpandConsent(false); - setShow(true); - setShowBackdrop(false); - sessionStorage.removeItem('aesirx-analytics-allow'); - } else if (variables?.message.indexOf('Login with nonce') > -1) { - const res = await verifySignature(aesirXEndpoint, 'metamask', address, data); - sessionStorage.setItem('aesirx-analytics-jwt', res?.jwt); - setLoadingCheckAccount(false); - const nonce = await getNonce( - endpoint, - address, - 'Decentralized Consent + Shield of Privacy:{nonce} {domain} {time}', - 'metamask' - ); - signMessage({ message: `${nonce}` }); - } else { - setLoading('saving'); - // Consent Metamask - await agreeConsents( - endpoint, - level, - uuid, - consents, - address, - signature, - web3ID, - jwt, - 'metamask', - gtagId, - gtmId, - layout - ); - sessionStorage.setItem('aesirx-analytics-uuid', uuid); - sessionStorage.setItem('aesirx-analytics-allow', '1'); - sessionStorage.setItem('aesirx-analytics-consent-type', 'metamask'); - - setShow(false); - setLoading('done'); - handleRevoke(true, level); - setShowBackdrop(false); - } - }, - async onError(error) { - setLoading('done'); - toast.error(error.message); - }, - }); - - const handleChange = async ({ target: { value } }: any) => { - if (consents.indexOf(parseInt(value)) === -1) { - setConsents([...consents, ...[parseInt(value)]]); - } else { - setConsents(consents.filter((consent) => consent !== parseInt(value))); - } - }; - - const handleAgree = async () => { - try { - let flag = true; - // Wallets - let jwt = ''; - if (level > 2) { - if (level === 4) { - try { - setLoadingCheckAccount(true); - const nonceLogin = await getWalletNonce( - aesirXEndpoint, - account ? 'concordium' : 'metamask', - account ?? address - ); - if (nonceLogin) { - try { - if (account) { - const signature = await connection.signMessage( - account, - stringMessage(`${nonceLogin}`) - ); - const convertedSignature = - typeof signature === 'object' && signature !== null - ? signature - : JSON.parse(signature); - - if (signature) { - const data = await verifySignature( - aesirXEndpoint, - 'concordium', - account, - convertedSignature - ); - sessionStorage.setItem('aesirx-analytics-jwt', data?.jwt); - jwt = data?.jwt; - loginApp && !isLoggedApp && loginApp(data); - setLoadingCheckAccount(false); - } - } else { - signMessage({ message: `${nonceLogin}` }); - } - } catch (error) { - setLoadingCheckAccount(false); - toast(error.message); - } - } - } catch (error) { - SSOClick('.loginSSO'); - setLoadingCheckAccount(false); - return; - } - } - if (account) { - // Concordium - const signature = await getSignature( - endpoint, - account, - connection, - level === 3 - ? 'Decentralized Consent:{nonce} {domain} {time}' - : 'Decentralized Consent + Shield of Privacy:{nonce} {domain} {time}' - ); - setLoading('saving'); - await agreeConsents( - endpoint, - level, - uuid, - consents, - account, - signature, - web3ID, - jwt, - 'concordium', - gtagId, - gtmId, - layout - ); - sessionStorage.setItem('aesirx-analytics-consent-type', 'concordium'); - } else if (connector) { - // Metamask - if (level === 3) { - const nonce = await getNonce( - endpoint, - address, - level === 3 - ? 'Decentralized Consent:{nonce} {domain} {time}' - : 'Decentralized Consent + Shield of Privacy:{nonce} {domain} {time}', - 'metamask' - ); - signMessage({ message: `${nonce}` }); - } - } else { - setLoading('connect'); - flag = false; - } - } else { - setLoading('saving'); - const consentList = await getConsents(endpoint, analyticsContext.visitor_uuid); - consents.forEach(async (consent) => { - const existConsent = consentList.find((item: any) => item?.consent === consent); - if (!existConsent) { - await agreeConsents( - endpoint, - 1, - uuid, - consent, - null, - null, - null, - null, - 'concordium', - gtagId, - gtmId, - layout - ); - } else if ( - !!existConsent?.consent_uuid && - existConsent?.expiration && - new Date(existConsent.expiration) < new Date() - ) { - await agreeConsents( - endpoint, - 1, - uuid, - consent, - null, - null, - null, - null, - 'concordium', - gtagId, - gtmId, - layout - ); - } - }); - } - - if (flag && (account || level < 3)) { - sessionStorage.setItem('aesirx-analytics-uuid', uuid); - sessionStorage.setItem('aesirx-analytics-allow', '1'); - - setShow(false); - setLoading('done'); - handleRevoke(true, level); - setShowBackdrop(false); - } - } catch (error) { - console.log(error); - handleNotAllow(); - - setLoading('done'); - toast.error(error?.response?.data?.error ?? error.message); - } - }; - - useEffect(() => { - const init = async () => { - if (Object.keys(consentTier4)?.length && (account || address)) { - await consentTier4Init(consentTier4); - setConsentTier4({}); - } - }; - init(); - }, [consentTier4, account, address]); - - const consentTier4Init = async (response: any) => { - let hasWeb3ID = true; - if (response?.loginType === 'concordium') { - const web3ID = await getWeb3ID(account, gRPCClient, network?.name); - if (web3ID) { - setWeb3ID(web3ID); - } else { - hasWeb3ID = false; - } - } else { - const memberData = await getMember(aesirXEndpoint, response?.access_token); - hasWeb3ID = memberData?.web3id ? true : false; - } - if (hasWeb3ID) { - if (response?.loginType === 'concordium') { - // Concordium - sessionStorage.setItem('aesirx-analytics-consent-type', 'concordium'); - const signature = await getSignature( - endpoint, - account, - connection, - 'Decentralized Consent + Shield of Privacy:{nonce} {domain} {time}' - ); - await agreeConsents( - endpoint, - level, - uuid, - consents, - account, - signature, - null, - response?.jwt, - 'concordium', - gtagId, - gtmId, - layout - ); - setShow(false); - handleRevoke(true, level); - setLoading('done'); - } else if (response?.loginType === 'metamask') { - // Metamask - sessionStorage.setItem('aesirx-analytics-consent-type', 'metamask'); - const nonce = await getNonce( - endpoint, - address, - 'Decentralized Consent + Shield of Privacy:{nonce} {domain} {time}', - 'metamask' - ); - signMessage({ message: `${nonce}` }); - } - } else { - handleLevel(3); - toast("You haven't minted any WEB3 ID yet. Try to mint at https://dapp.shield.aesirx.io"); - setLoading('done'); - } - }; - const onGetData = async (response: any) => { - // on Login Tier 2 & 4 - try { - setLoading('saving'); - const levelRevoke = sessionStorage.getItem('aesirx-analytics-revoke'); - sessionStorage.setItem('aesirx-analytics-jwt', response?.jwt); - if (levelRevoke && levelRevoke !== '0') { - // Revoke Consent - sessionStorage.setItem( - 'aesirx-analytics-consent-type', - response?.loginType === 'concordium' ? 'concordium' : 'metamask' - ); - handleRevokeBtn(); - } else { - // Agree Consent - if (level === 4) { - if (response?.loginType === 'concordium' && isDesktop) { - setActiveConnectorType(BROWSER_WALLET); - } - setConsentTier4(response); - } else { - await agreeConsents( - endpoint, - level, - uuid, - consents, - null, - null, - null, - response?.jwt, - 'concordium', - gtagId, - gtmId, - layout - ); - setShow(false); - handleRevoke(true, level); - setLoading('done'); - } - } - loginApp && !isLoggedApp && loginApp(response); - } catch (error) { - console.log(error); - setShow(false); - setLoading('done'); - toast.error(error?.response?.data?.error ?? error.message); - } - }; - - const handleNotAllow = () => { - sessionStorage.setItem('aesirx-analytics-uuid', uuid); - sessionStorage.setItem('aesirx-analytics-rejected', 'true'); - setShowExpandConsent(false); - setShowBackdrop(false); - window.funcAfterReject && window.funcAfterReject(); - }; - const handleRevokeBtn = async () => { - const levelRevoke = sessionStorage.getItem('aesirx-analytics-revoke'); - const consentType = sessionStorage.getItem('aesirx-analytics-consent-type'); - const jwt = sessionStorage.getItem('aesirx-analytics-jwt'); - try { - let flag = true; - - if (levelRevoke !== '1') { - if (parseInt(levelRevoke) > 2) { - if (!jwt && (parseInt(levelRevoke) === 2 || parseInt(levelRevoke) === 4)) { - SSOClick('.revokeLogin'); - return; - } - if (account && consentType !== 'metamask') { - setLoading('sign'); - const signature = await getSignature( - endpoint, - account, - connection, - 'Revoke consent:{nonce} {domain} {time}' - ); - setLoading('saving'); - const consentList = await getConsents(endpoint, uuid); - consentList.forEach(async (consent: any) => { - !consent?.expiration && - (await revokeConsents( - endpoint, - levelRevoke, - consent?.consent_uuid, - account, - signature, - web3ID, - jwt - )); - }); - setLoading('done'); - handleRevoke(false); - } else if (connector) { - // Metamask - setLoading('sign'); - setLoading('saving'); - const nonce = await getNonce( - endpoint, - address, - 'Revoke consent:{nonce} {domain} {time}', - 'metamask' - ); - signMessage({ message: `${nonce}` }); - } else { - setLoading('connect'); - flag = false; - } - } else { - setLoading('saving'); - const consentList = await getConsents(endpoint, uuid); - consentList.forEach(async (consent: any) => { - !consent?.expiration && - (await revokeConsents( - endpoint, - levelRevoke, - consent?.consent_uuid, - null, - null, - null, - jwt - )); - }); - setLoading('done'); - handleRevoke(false); - } - - if (flag && ((account && consentType !== 'metamask') || level < 3)) { - setShowExpandConsent(false); - setShow(true); - setShowBackdrop(false); - sessionStorage.removeItem('aesirx-analytics-allow'); - } - } else { - handleRevoke(false); - setShowExpandConsent(false); - setShow(true); - setShowBackdrop(false); - sessionStorage.removeItem('aesirx-analytics-allow'); - } - } catch (error) { - console.log(error); - setLoading('done'); - toast.error(error?.response?.data?.error ?? error.message); - } - }; - - const SSOClick = (selector: string) => { - const element: HTMLElement = document.querySelector(selector) as HTMLElement; - element.click(); - }; - - const loadConsentDefault = async (gtagId: any, gtmId: any) => { - window.dataLayer = window.dataLayer || []; - function gtag( // eslint-disable-next-line @typescript-eslint/no-unused-vars - p0: string, // eslint-disable-next-line @typescript-eslint/no-unused-vars - p1: any, // eslint-disable-next-line @typescript-eslint/no-unused-vars - p2?: any - ) { - // eslint-disable-next-line prefer-rest-params - dataLayer.push(arguments); - } - if (layout !== 'simple-consent-mode' && sessionStorage.getItem('consentGranted') !== 'true') { - gtag('consent', 'default', { - ad_user_data: 'denied', - ad_personalization: 'denied', - ad_storage: 'denied', - analytics_storage: 'denied', - wait_for_update: 500, - }); - gtag('set', 'url_passthrough', true); - gtag('set', 'ads_data_redaction', true); - } - if ( - (layout !== 'simple-consent-mode' || sessionStorage.getItem('consentGranted') === 'true') && - ((gtmId && - !document.querySelector( - `script[src="https://www.googletagmanager.com/gtm.js?id=${gtmId}"]` - )) || - (gtagId && - !document.querySelector( - `script[src="https://www.googletagmanager.com/gtag/js?id=${gtagId}"]` - ))) - ) { - gtagId && (await loadGtagScript(gtagId)); - gtmId && (await loadGtmScript(gtmId)); - if (gtagId) { - gtag('js', new Date()); - gtag('config', `${gtagId}`); - } - if (gtmId) { - dataLayer.push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); - } - } - - if (sessionStorage.getItem('consentGranted') === 'true') { - gtag('consent', 'update', { - ad_user_data: 'granted', - ad_personalization: 'granted', - ad_storage: 'granted', - analytics_storage: 'granted', - }); - } - }; - - useEffect(() => { - if (activeConnectorError) { - toast.error(activeConnectorError); - } - }, [activeConnectorError]); - - useEffect(() => { - if (sessionStorage.getItem('aesirx-analytics-rejected') === 'true') { - setShowBackdrop(false); - setShowExpandConsent(false); - } - }, []); - - useEffect(() => { - (gtagId || gtmId) && loadConsentDefault(gtagId, gtmId); - }, [layout]); - - console.log('level', uuid, level, web3ID, account, loading); - - return ( -
- - {!account && loading === 'connect' && ( - - )} - - ); -}; - -export default ConsentComponent; diff --git a/src/Components/ConsentCustom.tsx b/src/Components/ConsentCustom.tsx deleted file mode 100644 index 39e3d1b3..00000000 --- a/src/Components/ConsentCustom.tsx +++ /dev/null @@ -1,1476 +0,0 @@ -/* eslint-disable no-case-declarations */ -import { - agreeConsents, - getConsents, - getMember, - getNonce, - getSignature, - getWalletNonce, - loadGtagScript, - loadGtmScript, - revokeConsents, - verifySignature, -} from '../utils/consent'; -import React, { Suspense, useContext, useEffect, useState } from 'react'; -import { Button, Col, Form, Row } from 'react-bootstrap'; -import useConsentStatus from '../Hooks/useConsentStatus'; -import '../styles/style.scss'; -import { TermsComponent } from './Terms'; -import { toast } from 'react-toastify'; - -import no from '../Assets/no.svg'; -import bg from '../Assets/bg.png'; -import privacy from '../Assets/privacy.svg'; -import checkbox from '../Assets/checkbox.svg'; -import checkbox_active from '../Assets/checkbox_active.svg'; -import check_circle from '../Assets/check_circle.svg'; -import wallet_consent from '../Assets/wallet_consent.png'; -import wallet_shield_consent from '../Assets/wallet_shield_consent.png'; - -import ContentLoader from 'react-content-loader'; -const SSOButton: any = React.lazy(() => - import('aesirx-sso').then((module) => ({ default: module.SSOButton })) -); -import { - MAINNET, - WithWalletConnector, - useConnection, - useConnect, - ConnectorType, - stringMessage, - useGrpcClient, - TESTNET, -} from '@concordium/react-components'; -import { BROWSER_WALLET, WALLET_CONNECT } from '../Hooks/config'; -import { OsTypes, isDesktop, isMobile, osName } from 'react-device-detect'; -import { LoadingStatus } from './LoadingStatus'; -import ConnectModal from './Connect'; -import { AnalyticsContext } from '../utils/AnalyticsContextProvider'; -import { useTranslation } from 'react-i18next'; -import { useAccount, useSignMessage } from 'wagmi'; -import SSOEthereumProvider from './Ethereum'; -import { getWeb3ID } from '../utils/Concordium'; -import { trackEvent } from '../utils'; -import ConsentHeader from './ConsentHeader'; -declare global { - interface Window { - dataLayer: any; - } -} -declare const dataLayer: any[]; - -const ConsentComponentCustom = ({ - endpoint, - aesirXEndpoint, - networkEnv, - loginApp, - isLoggedApp, - gtagId, - gtmId, - layout, - isOptInReplaceAnalytics, - customConsentText, - languageSwitcher, -}: any) => { - return ( - <> - {!isOptInReplaceAnalytics ? ( - <> - - {(props: any) => ( - - )} - - - ) : ( - <> - )} - - ); -}; -const ConsentComponentCustomWrapper = (props: any) => { - const [ - uuid, - level, - connection, - account, - show, - setShow, - web3ID, - setWeb3ID, - handleLevel, - showRevoke, - handleRevoke, - ] = useConsentStatus(props?.endpoint, props?.layout, props); - - return ( -
- - - -
- ); -}; -const ConsentComponentCustomApp = (props: any) => { - const { - endpoint, - aesirXEndpoint, - loginApp, - isLoggedApp, - gtagId, - gtmId, - layout, - customConsentText, - languageSwitcher, - activeConnectorType, - activeConnector, - activeConnectorError, - connectedAccounts, - genesisHashes, - setActiveConnectorType, - network, - uuid, - level, - connection, - account, - show, - setShow, - web3ID, - setWeb3ID, - handleLevel, - showRevoke, - handleRevoke, - } = props; - const { setConnection } = useConnection(connectedAccounts, genesisHashes); - - const { isConnecting } = useConnect(activeConnector, setConnection); - - const handleOnConnect = async (connectorType: ConnectorType, network = 'concordium') => { - if (network === 'concordium') { - setActiveConnectorType(connectorType); - } - setLoading('done'); - }; - - const [consents, setConsents] = useState([1, 2]); - const [revokeConsentOption, setRevokeConsentOption] = useState('consent'); - const [loading, setLoading] = useState('done'); - const [loadingCheckAccount, setLoadingCheckAccount] = useState(false); - const [showExpandConsent, setShowExpandConsent] = useState(true); - const [showRejectedConsent, setShowRejectedConsent] = useState(false); - const [showExpandRevoke, setShowExpandRevoke] = useState(false); - const [showBackdrop, setShowBackdrop] = useState(true); - const [consentTier4, setConsentTier4] = useState({}); - const [upgradeLayout, setUpgradeLayout] = useState( - level === 3 || level === 4 ? true : false - ); - const [upgradeLevel, setUpgradeLevel] = useState(level === 4 || level === 3 ? level : 0); - const analyticsContext = useContext(AnalyticsContext); - const { t } = useTranslation(); - const gRPCClient = useGrpcClient(network); - const revoke = sessionStorage.getItem('aesirx-analytics-revoke'); - // Metamask - const { address, connector } = - (layout === 'simple-consent-mode' || level === 1) && - (!revoke || revoke === '0' || revoke === '1') - ? { address: '', connector: '' } - : useAccount(); - const { signMessage }: any = - (layout === 'simple-consent-mode' || level === 1) && - (!revoke || revoke === '0' || revoke === '1') - ? { signMessage: {} } - : useSignMessage({ - async onSuccess(data: any, variables: any) { - const signature = Buffer.from( - typeof data === 'object' && data !== null ? JSON.stringify(data) : data, - 'utf-8' - ).toString('base64'); - const jwt = sessionStorage.getItem('aesirx-analytics-jwt'); - if (variables?.message.indexOf('Revoke consent') > -1) { - // Revoke Metamask - const levelRevoke = sessionStorage.getItem('aesirx-analytics-revoke'); - const consentList = await getConsents(endpoint, uuid); - consentList.forEach(async (consent: any) => { - !consent?.expiration && - (await revokeConsents( - endpoint, - levelRevoke, - consent?.consent_uuid, - address, - signature, - web3ID, - jwt, - 'metamask' - )); - }); - setLoading('done'); - handleRevoke(false); - setShowExpandConsent(false); - setShow(true); - setShowBackdrop(false); - sessionStorage.removeItem('aesirx-analytics-allow'); - } else if (variables?.message.indexOf('Login with nonce') > -1) { - const res = await verifySignature(aesirXEndpoint, 'metamask', address, data); - sessionStorage.setItem('aesirx-analytics-jwt', res?.jwt); - setLoadingCheckAccount(false); - const nonce = await getNonce( - endpoint, - address, - 'Decentralized Consent + Shield of Privacy:{nonce} {domain} {time}', - 'metamask' - ); - signMessage({ message: `${nonce}` }); - } else { - setLoading('saving'); - // Consent Metamask - await agreeConsents( - endpoint, - level, - uuid, - consents, - address, - signature, - web3ID, - jwt, - 'metamask', - gtagId, - gtmId - ); - sessionStorage.setItem('aesirx-analytics-uuid', uuid); - sessionStorage.setItem('aesirx-analytics-allow', '1'); - sessionStorage.setItem('aesirx-analytics-consent-type', 'metamask'); - - setShow(false); - setLoading('done'); - handleRevoke(true, level); - setShowBackdrop(false); - } - }, - async onError(error: any) { - setLoading('done'); - toast.error(error.message); - }, - }); - - const handleChange = async ({ target: { value } }: any) => { - if (consents.indexOf(parseInt(value)) === -1) { - setConsents([...consents, ...[parseInt(value)]]); - } else { - setConsents(consents.filter((consent) => consent !== parseInt(value))); - } - }; - - const handleAgree = async () => { - try { - let flag = true; - // Wallets - let jwt = ''; - if (level > 2) { - if (level === 4) { - try { - setLoadingCheckAccount(true); - const nonceLogin = await getWalletNonce( - aesirXEndpoint, - account ? 'concordium' : 'metamask', - account ?? address - ); - if (nonceLogin) { - try { - if (account) { - const signature = await connection.signMessage( - account, - stringMessage(`${nonceLogin}`) - ); - const convertedSignature = - typeof signature === 'object' && signature !== null - ? signature - : JSON.parse(signature); - - if (signature) { - const data = await verifySignature( - aesirXEndpoint, - 'concordium', - account, - convertedSignature - ); - sessionStorage.setItem('aesirx-analytics-jwt', data?.jwt); - jwt = data?.jwt; - loginApp && !isLoggedApp && loginApp(data); - setLoadingCheckAccount(false); - } - } else { - signMessage({ message: `${nonceLogin}` }); - } - } catch (error) { - setLoadingCheckAccount(false); - toast(error.message); - } - } - } catch (error) { - SSOClick('.loginSSO'); - setLoadingCheckAccount(false); - return; - } - } - if (account) { - // Concordium - const signature = await getSignature( - endpoint, - account, - connection, - level === 3 - ? 'Decentralized Consent:{nonce} {domain} {time}' - : 'Decentralized Consent + Shield of Privacy:{nonce} {domain} {time}' - ); - setLoading('saving'); - await agreeConsents( - endpoint, - level, - uuid, - consents, - account, - signature, - web3ID, - jwt, - 'concordium', - gtagId, - gtmId - ); - sessionStorage.setItem('aesirx-analytics-consent-type', 'concordium'); - setUpgradeLayout(false); - } else if (connector) { - // Metamask - if (level === 3) { - const nonce = await getNonce( - endpoint, - address, - level === 3 - ? 'Decentralized Consent:{nonce} {domain} {time}' - : 'Decentralized Consent + Shield of Privacy:{nonce} {domain} {time}', - 'metamask' - ); - signMessage({ message: `${nonce}` }); - } - } else { - setLoading('connect'); - flag = false; - } - } else { - setLoading('saving'); - const consentList = await getConsents(endpoint, analyticsContext.visitor_uuid); - consents.forEach(async (consent) => { - const existConsent = consentList.find((item: any) => item?.consent === consent); - if (!existConsent) { - await agreeConsents( - endpoint, - 1, - uuid, - consent, - null, - null, - null, - null, - null, - gtagId, - gtmId - ); - } else if ( - !!existConsent?.consent_uuid && - existConsent?.expiration && - new Date(existConsent.expiration) < new Date() - ) { - await agreeConsents( - endpoint, - 1, - uuid, - consent, - null, - null, - null, - null, - null, - gtagId, - gtmId - ); - } - }); - } - - if (flag && (account || level < 3)) { - sessionStorage.setItem('aesirx-analytics-uuid', uuid); - sessionStorage.setItem('aesirx-analytics-allow', '1'); - - setShow(false); - setLoading('done'); - handleRevoke(true, level); - setUpgradeLayout(false); - setShowBackdrop(false); - setShowExpandRevoke(false); - } - } catch (error) { - console.log(error); - handleNotAllow(); - - setLoading('done'); - toast.error(error?.response?.data?.error ?? error.message); - } - }; - - useEffect(() => { - const init = async () => { - if (Object.keys(consentTier4)?.length && (account || address)) { - await consentTier4Init(consentTier4); - setConsentTier4({}); - } - }; - init(); - }, [consentTier4, account, address]); - - const consentTier4Init = async (response: any) => { - let hasWeb3ID = true; - if (response?.loginType === 'concordium') { - const web3ID = await getWeb3ID(account, gRPCClient, network?.name); - if (web3ID) { - setWeb3ID(web3ID); - } else { - hasWeb3ID = false; - } - } else { - const memberData = await getMember(aesirXEndpoint, response?.access_token); - hasWeb3ID = memberData?.web3id ? true : false; - } - if (hasWeb3ID) { - if (response?.loginType === 'concordium') { - // Concordium - sessionStorage.setItem('aesirx-analytics-consent-type', 'concordium'); - const signature = await getSignature( - endpoint, - account, - connection, - 'Decentralized Consent + Shield of Privacy:{nonce} {domain} {time}' - ); - await agreeConsents( - endpoint, - level, - uuid, - consents, - account, - signature, - null, - response?.jwt, - 'concordium', - gtagId, - gtmId - ); - setShow(false); - handleRevoke(true, level); - setUpgradeLayout(false); - setLoading('done'); - } else if (response?.loginType === 'metamask') { - // Metamask - sessionStorage.setItem('aesirx-analytics-consent-type', 'metamask'); - const nonce = await getNonce( - endpoint, - address, - 'Decentralized Consent + Shield of Privacy:{nonce} {domain} {time}', - 'metamask' - ); - signMessage({ message: `${nonce}` }); - } - } else { - handleLevel(3); - toast("You haven't minted any WEB3 ID yet. Try to mint at https://dapp.shield.aesirx.io"); - setLoading('done'); - } - }; - const onGetData = async (response: any) => { - // on Login Tier 2 & 4 - try { - setLoading('saving'); - const levelRevoke = sessionStorage.getItem('aesirx-analytics-revoke'); - sessionStorage.setItem('aesirx-analytics-jwt', response?.jwt); - if (levelRevoke && levelRevoke !== '0') { - // Revoke Consent - sessionStorage.setItem( - 'aesirx-analytics-consent-type', - response?.loginType === 'concordium' ? 'concordium' : 'metamask' - ); - await handleRevokeBtn(); - setTimeout(() => { - window.location.reload(); - }, 1000); - } else { - // Agree Consent - if (level === 4) { - if (response?.loginType === 'concordium' && isDesktop) { - setActiveConnectorType(BROWSER_WALLET); - } - setConsentTier4(response); - } else { - await agreeConsents( - endpoint, - level, - uuid, - consents, - null, - null, - null, - response?.jwt, - 'concordium', - gtagId, - gtmId - ); - setShow(false); - handleRevoke(true, level); - setUpgradeLayout(false); - setLoading('done'); - } - } - loginApp && !isLoggedApp && loginApp(response); - } catch (error) { - console.log(error); - setShow(false); - setLoading('done'); - toast.error(error?.response?.data?.error ?? error.message); - } - }; - - const handleNotAllow = async () => { - sessionStorage.setItem('aesirx-analytics-uuid', uuid); - setShowExpandConsent(false); - setShowBackdrop(false); - const hostUrl = endpoint ? endpoint : ''; - const root = hostUrl ? hostUrl.replace(/\/$/, '') : ''; - await trackEvent(root, '', { - event_name: 'Reject consent', - event_type: 'reject-consent', - }); - sessionStorage.setItem('aesirx-analytics-rejected', 'true'); - window.funcAfterReject && window.funcAfterReject(); - }; - const handleRevokeBtn = async () => { - const levelRevoke = sessionStorage.getItem('aesirx-analytics-revoke'); - const consentType = sessionStorage.getItem('aesirx-analytics-consent-type'); - const jwt = sessionStorage.getItem('aesirx-analytics-jwt'); - try { - let flag = true; - - if (levelRevoke !== '1') { - if (parseInt(levelRevoke) > 2) { - if (!jwt && (parseInt(levelRevoke) === 2 || parseInt(levelRevoke) === 4)) { - SSOClick('.revokeLogin'); - return; - } - if (account && consentType !== 'metamask') { - setLoading('sign'); - const signature = await getSignature( - endpoint, - account, - connection, - 'Revoke consent:{nonce} {domain} {time}' - ); - setLoading('saving'); - const consentList = await getConsents(endpoint, uuid); - consentList.forEach(async (consent: any) => { - !consent?.expiration && - (await revokeConsents( - endpoint, - levelRevoke, - consent?.consent_uuid, - account, - signature, - web3ID, - jwt - )); - }); - setLoading('done'); - handleRevoke(false); - } else if (connector) { - // Metamask - setLoading('sign'); - setLoading('saving'); - const nonce = await getNonce( - endpoint, - address, - 'Revoke consent:{nonce} {domain} {time}', - 'metamask' - ); - signMessage({ message: `${nonce}` }); - } else { - setLoading('connect'); - flag = false; - } - } else { - if (!jwt && parseInt(levelRevoke) === 2) { - SSOClick('.revokeLogin'); - return; - } else { - setLoading('saving'); - const consentList = await getConsents(endpoint, uuid); - consentList.forEach(async (consent: any) => { - !consent?.expiration && - (await revokeConsents( - endpoint, - levelRevoke, - consent?.consent_uuid, - null, - null, - null, - jwt - )); - }); - setLoading('done'); - handleRevoke(false); - } - } - - if (flag && ((account && consentType !== 'metamask') || level < 3)) { - setShowExpandConsent(false); - setShow(true); - setShowBackdrop(false); - sessionStorage.removeItem('aesirx-analytics-allow'); - } - } else { - await revokeConsents(endpoint, levelRevoke, uuid, null, null, null, jwt); - handleRevoke(false); - setShowExpandConsent(false); - setShow(true); - setShowBackdrop(false); - sessionStorage.removeItem('aesirx-analytics-allow'); - } - const hostUrl = endpoint ? endpoint : ''; - const root = hostUrl ? hostUrl.replace(/\/$/, '') : ''; - trackEvent(root, '', { - event_name: 'Revoke consent', - event_type: 'revoke-consent', - }); - } catch (error) { - console.log(error); - setLoading('done'); - toast.error(error?.response?.data?.error ?? error.message); - } - }; - - const SSOClick = (selector: string) => { - const element: HTMLElement = document.querySelector(selector) as HTMLElement; - element.click(); - }; - - useEffect(() => { - if (activeConnectorError) { - toast.error(activeConnectorError); - } - }, [activeConnectorError]); - - useEffect(() => { - if (sessionStorage.getItem('aesirx-analytics-rejected') === 'true') { - setShowBackdrop(false); - setShowExpandConsent(false); - } - if ( - sessionStorage.getItem('aesirx-analytics-revoke') && - sessionStorage.getItem('aesirx-analytics-revoke') !== '0' - ) { - window.funcAfterConsent && window.funcAfterConsent(); - } - }, []); - - useEffect(() => { - (gtagId || gtmId) && loadConsentDefault(gtagId, gtmId); - }, [layout, gtagId, gtmId]); - - useEffect(() => { - if ( - showExpandRevoke && - isDesktop && - (sessionStorage.getItem('aesirx-analytics-revoke') === '3' || - sessionStorage.getItem('aesirx-analytics-revoke') === '4') - ) { - setActiveConnectorType(BROWSER_WALLET); - } - }, [showExpandRevoke]); - - console.log('level', uuid, level, web3ID, account, loading); - - const ConsentLevelUprade = ({ level, levelname, image, content, isUpgrade = false }: any) => { - return ( -
{ - setUpgradeLevel(level); - handleLevel(level); - }} - > -
- level -
{levelname}
-
{content}
-
-
- Checkbox icon -
-
- ); - }; - const loadConsentDefault = async (gtagId: any, gtmId: any) => { - window.dataLayer = window.dataLayer || []; - function gtag( // eslint-disable-next-line @typescript-eslint/no-unused-vars - p0: string, // eslint-disable-next-line @typescript-eslint/no-unused-vars - p1: any, // eslint-disable-next-line @typescript-eslint/no-unused-vars - p2?: any - ) { - // eslint-disable-next-line prefer-rest-params - dataLayer.push(arguments); - } - if ( - sessionStorage.getItem('consentGranted') === 'true' && - ((gtmId && - !document.querySelector( - `script[src="https://www.googletagmanager.com/gtm.js?id=${gtmId}"]` - )) || - (gtagId && - !document.querySelector( - `script[src="https://www.googletagmanager.com/gtag/js?id=${gtagId}"]` - ))) - ) { - gtagId && (await loadGtagScript(gtagId)); - gtmId && (await loadGtmScript(gtmId)); - if (gtagId) { - gtag('js', new Date()); - gtag('config', `${gtagId}`); - } - if (gtmId) { - dataLayer.push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); - } - } - if (sessionStorage.getItem('consentGranted') === 'true') { - gtag('consent', 'update', { - ad_user_data: 'granted', - ad_personalization: 'granted', - ad_storage: 'granted', - analytics_storage: 'granted', - }); - } - }; - const paymentRevoke = sessionStorage.getItem('aesirx-analytics-opt-payment'); - const optInRevokes = Object.keys(sessionStorage) - .filter((key) => key.startsWith('aesirx-analytics-optin')) - .map((key) => key); - return ( -
-
-
-
- -
-
- {!showExpandRevoke && ( - <> - Background Image -
{ - if ( - osName !== OsTypes?.IOS && - isMobile && - !connection && - sessionStorage.getItem('aesirx-analytics-revoke') && - parseInt(sessionStorage.getItem('aesirx-analytics-revoke')) > 2 - ) { - setActiveConnectorType(WALLET_CONNECT); - } - setShowExpandRevoke(true); - }} - > - SoP Icon - {(window as any)?.aesirx_analytics_translate?.txt_shield_of_privacy ?? - t('txt_shield_of_privacy')} -
- - )} - - {showExpandRevoke && ( - <> - -
{ - setShowExpandRevoke(false); - }} - > - No Icon -
-
- {paymentRevoke - ? ((window as any)?.aesirx_analytics_translate - ?.txt_you_can_revoke_on_the_site ?? t('txt_you_can_revoke_on_the_site')) - : ((window as any)?.aesirx_analytics_translate?.txt_you_can_revoke ?? - t('txt_you_can_revoke'))} -
-
- { - setRevokeConsentOption(value); - }} - /> - {optInRevokes?.map((item, key) => { - return ( - { - setRevokeConsentOption(value); - }} - /> - ); - })} - - -
-
-
-
- - {(window as any)?.aesirx_analytics_translate?.txt_manage_consent ?? - t('txt_manage_consent')} - - {loading === 'done' ? ( - - ) : ( - <> - )} - {(sessionStorage.getItem('aesirx-analytics-revoke') === '4' || - sessionStorage.getItem('aesirx-analytics-revoke') === '2') && ( -
- Loading...
}> - Login Revoke} - ssoState={'noscopes'} - onGetData={onGetData} - /> - -
- )} -
-
-
-
- - )} -
-
-
-
-
-
- -
- {!showExpandConsent ? ( - <> -
- Background Image -
{ - setShowExpandConsent(true); - const rejectConsent = sessionStorage.getItem('aesirx-analytics-rejected'); - rejectConsent && setShowRejectedConsent(true); - sessionStorage.removeItem('aesirx-analytics-rejected'); - }} - > - SoP Icon - {(window as any)?.aesirx_analytics_translate?.txt_shield_of_privacy ?? - t('txt_shield_of_privacy')} -
-
- - ) : ( -
- {level ? ( - <> - {upgradeLayout ? ( - <> -
- <> -

- {(window as any)?.aesirx_analytics_translate - ?.txt_select_your_preferred ?? t('txt_select_your_preferred')} -

-
- - - -
- - Check Icon - -
- {(window as any)?.aesirx_analytics_translate - ?.txt_decentralized_wallet_will_be_loaded ?? - t('txt_decentralized_wallet_will_be_loaded')} -
-
-
- - Check Icon - -
- {(window as any)?.aesirx_analytics_translate - ?.txt_both_first_party_third_party ?? - t('txt_both_first_party_third_party')} -
-
-
- - Check Icon - -
- {(window as any)?.aesirx_analytics_translate - ?.txt_all_consented_data_will_be_collected ?? - t('txt_all_consented_data_will_be_collected')} -
-
-
- - Check Icon - -
- {(window as any)?.aesirx_analytics_translate - ?.txt_users_can_revoke ?? t('txt_users_can_revoke')} -
-
- - } - isUpgrade={true} - /> - - - -
- - Check Icon - -
- {(window as any)?.aesirx_analytics_translate - ?.txt_decentralized_wallet_will_be_loaded ?? - t('txt_decentralized_wallet_will_be_loaded')} -
-
-
- - Check Icon - -
- {(window as any)?.aesirx_analytics_translate - ?.txt_both_first_party_third_party ?? - t('txt_both_first_party_third_party')} -
-
-
- - Check Icon - -
- {(window as any)?.aesirx_analytics_translate - ?.txt_all_consented_data_will_be_collected ?? - t('txt_all_consented_data_will_be_collected')} -
-
-
- - Check Icon - -
- {(window as any)?.aesirx_analytics_translate - ?.txt_users_can_revoke_dapp ?? - t('txt_users_can_revoke_dapp')} -
-
-
- - Check Icon - -
- {(window as any)?.aesirx_analytics_translate - ?.txt_users_can_earn ?? t('txt_users_can_earn')} -
-
- - } - isUpgrade={true} - /> - -
-
-
- -
- {layout !== 'simple-consent-mode' && ( - - Loading... -
- } - > - - {(window as any)?.aesirx_analytics_translate - ?.txt_continue ?? t('txt_continue')} - - } - ssoState={'noscopes'} - onGetData={onGetData} - {...(level === 2 ? { noCreateAccount: true } : {})} - /> - - )} -
- {level === 4 && !account && !address ? ( - <> - ) : ( - - )} -
- -
- - ) : showRejectedConsent ? ( - <> - -
- - -
- {loading === 'done' ? ( - <> - - - {level === 2 || (level === 4 && !account && !address) ? ( - <> - ) : ( - - )} - {layout === 'simple-consent-mode' ? ( - <> - ) : ( - <> - {' '} - - )} - - ) : ( - <> - )} -
- -
- - ) : ( - <> - -
- - -
- {loading === 'done' ? ( - <> - - - {level === 2 || (level === 4 && !account && !address) ? ( - <> - ) : ( - - )} - {layout === 'simple-consent-mode' ? ( - <> - ) : ( - <> - {' '} - - )} - - ) : ( - <> - )} -
- -
- - )} - - ) : ( -
- - - - - - - - - - -
- )} -
- )} -
-
-
- {!account && loading === 'connect' && ( - - )} - - ); -}; - -export default ConsentComponentCustom; diff --git a/src/Components/ConsentHeader.tsx b/src/Components/ConsentHeader.tsx deleted file mode 100644 index 70b9995e..00000000 --- a/src/Components/ConsentHeader.tsx +++ /dev/null @@ -1,79 +0,0 @@ -import React from 'react'; -import bg from '../Assets/bg.png'; -import privacy from '../Assets/privacy.svg'; -import { useTranslation } from 'react-i18next'; -import { useI18nextContext } from '../utils/I18nextProvider'; -import Select, { StylesConfig } from 'react-select'; -import i18n from 'i18next'; - -const ConsentHeader = ({ isRejectedLayout, languageSwitcher }: any) => { - const { t } = useTranslation(); - const { listLanguages } = useI18nextContext(); - const currentLanguage = listLanguages.filter( - (lang: any) => lang.value == i18n.language || i18n.language?.includes(lang.value) - ); - const customStyles: StylesConfig = { - menuList: (base) => ({ - ...base, - maxHeight: '160px', - }), - }; - return ( -
-
- {(window as any)?.aesirx_analytics_translate?.txt_tracking_data_privacy ?? - t('txt_tracking_data_privacy')} -
- {languageSwitcher ? ( -
-
-
-
-
- -
-
- {!showExpandRevoke && ( - <> - Background Image -
{ - if ( - osName !== OsTypes?.IOS && - isMobile && - !connection && - sessionStorage.getItem('aesirx-analytics-revoke') && - parseInt(sessionStorage.getItem('aesirx-analytics-revoke')) > 2 - ) { - setActiveConnectorType(WALLET_CONNECT); - } - setShowExpandRevoke(true); - }} - > - SoP Icon - {t('txt_shield_of_privacy')} -
- - )} - - {showExpandRevoke && ( - <> -
{ - setShowExpandRevoke(false); - }} - > - No Icon -
-
-
- Background Image -
-
-
- SoP Icon {t('txt_shield_of_privacy')} -
-
- - {t('txt_manage_consent')} - - {loading === 'done' ? ( - - ) : ( - <> - )} - {(sessionStorage.getItem('aesirx-analytics-revoke') === '4' || - sessionStorage.getItem('aesirx-analytics-revoke') === '2') && ( -
- Loading...
}> - Login Revoke} - ssoState={'noscopes'} - onGetData={onGetData} - /> - -
- )} -
-
-
-
- - )} -
-
-
-
-
-
- -
- {!showExpandConsent ? ( - <> -
- Background Image -
{ - setShowExpandConsent(true); - sessionStorage.removeItem('aesirx-analytics-rejected'); - }} - > - SoP Icon - {t('txt_shield_of_privacy')} -
-
- - ) : ( - <> - {level ? ( - <> - -
- - -
- {loading === 'done' ? ( - <> -
- Loading...
}> - - Yes Icon - {t('txt_yes_i_consent')} - - } - ssoState={'noscopes'} - onGetData={onGetData} - {...(level === 2 ? { noCreateAccount: true } : {})} - /> - -
- {level === 2 || (level === 4 && !account && !address) ? ( - <> - ) : ( - - )} - - - - ) : ( - <> - )} -
- - - - ) : ( -
- - - - - - - - - - -
- )} - - )} -
-
-