diff --git a/src/AnalyticsNext/index.tsx b/src/AnalyticsNext/index.tsx index e0bec36..ba913e0 100644 --- a/src/AnalyticsNext/index.tsx +++ b/src/AnalyticsNext/index.tsx @@ -1,9 +1,10 @@ -import React, { ReactNode } from 'react'; +import React, { ReactNode, useEffect, useState } 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 }); @@ -25,6 +26,14 @@ const AnalyticsNext = ({ isLoggedApp, children, }: AnalyticsNext) => { + const [layout, setLayout] = useState(process.env.NEXT_PUBLIC_CONSENT_LAYOUT); + useEffect(() => { + const init = async () => { + const data: any = await getConsentTemplate(window.location.host); + setLayout(data?.data?.template ?? process.env.NEXT_PUBLIC_CONSENT_LAYOUT); + }; + init(); + }, []); return ( <> @@ -32,7 +41,7 @@ const AnalyticsNext = ({ {children} {process.env.NEXT_PUBLIC_DISABLE_ANALYTICS_CONSENT !== 'true' && ( <> - {oldLayout || process.env.NEXT_PUBLIC_CONSENT_LAYOUT === 'original' ? ( + {oldLayout || layout === 'original' ? ( )} diff --git a/src/AnalyticsReact/index.tsx b/src/AnalyticsReact/index.tsx index 0ff0f97..a2946ec 100644 --- a/src/AnalyticsReact/index.tsx +++ b/src/AnalyticsReact/index.tsx @@ -1,7 +1,8 @@ -import React, { ReactNode, Suspense } from 'react'; +import React, { ReactNode, Suspense, useEffect, useState } 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')); @@ -14,13 +15,21 @@ interface AnalyticsReact { } const AnalyticsReact = ({ location, history, oldLayout = false, children }: AnalyticsReact) => { + const [layout, setLayout] = useState(process.env.REACT_APP_CONSENT_LAYOUT); + useEffect(() => { + const init = async () => { + const data: any = await getConsentTemplate(window.location.host); + setLayout(data?.data?.template ?? process.env.REACT_APP_CONSENT_LAYOUT); + }; + init(); + }, []); return ( {children} {process.env.REACT_APP_DISABLE_ANALYTICS_CONSENT !== 'true' && ( }> - {oldLayout || process.env.REACT_APP_CONSENT_LAYOUT === 'original' ? ( + {oldLayout || layout === 'original' ? ( )} diff --git a/src/Hooks/useConsentStatus.ts b/src/Hooks/useConsentStatus.ts index b296ca2..d59f6dd 100644 --- a/src/Hooks/useConsentStatus.ts +++ b/src/Hooks/useConsentStatus.ts @@ -169,7 +169,6 @@ const useConsentStatus = (endpoint?: string, layout?: string, props?: WalletConn setLevel(null); l = 3; let web3ID = false; - console.log('test', account); if (account && sessionStorage.getItem('aesirx-analytics-consent-type') !== 'metamask') { web3ID = await getWeb3ID(account, rpc, network?.name); if (web3ID === true) { @@ -177,21 +176,29 @@ const useConsentStatus = (endpoint?: string, layout?: string, props?: WalletConn } } setWeb3ID(web3ID); - setLevel(l); + if (layout !== 'simple-consent-mode' && layout !== 'simple-web-2') { + setLevel(l); + } else { + setLevel(1); + } } } else if (connector) { // Metamask - if (l < 3) { - l = 3; - const web3ID = false; - setWeb3ID(web3ID); - setLevel(l); - } else { - if (l === 4) { - setLevel(4); + if (layout !== 'simple-consent-mode' && layout !== 'simple-web-2') { + if (l < 3) { + l = 3; + const web3ID = false; + setWeb3ID(web3ID); + setLevel(l); } else { - setLevel(3); + if (l === 4) { + setLevel(4); + } else { + setLevel(3); + } } + } else { + setLevel(1); } } else { setLevel(level ?? layout === 'advance-consent-mode' ? 2 : 1); @@ -201,16 +208,20 @@ const useConsentStatus = (endpoint?: string, layout?: string, props?: WalletConn console.error(error); } })(); - }, [account, address, connector]); + }, [account, address, connector, layout]); const handleLevel = useCallback( async (_level: number) => { - setLevel(_level); - if (_level > 3 && isDesktop && !connection && window['concordium']) { - setActiveConnectorType(BROWSER_WALLET); + if (layout !== 'simple-consent-mode' && layout !== 'simple-web-2') { + setLevel(_level); + if (_level > 3 && isDesktop && !connection && window['concordium']) { + setActiveConnectorType(BROWSER_WALLET); + } + } else { + setLevel(1); } }, - [level] + [level, layout] ); const handleRevoke = (status: boolean, level: string) => { diff --git a/src/analytics.tsx b/src/analytics.tsx index 7d060b1..9123535 100644 --- a/src/analytics.tsx +++ b/src/analytics.tsx @@ -5,7 +5,7 @@ import { searchAnalytics, viewProductAnalytics, } from './utils/woocommerce'; -import React from 'react'; +import React, { useEffect, useState } from 'react'; import { createRoot } from 'react-dom/client'; import { AnalyticsContext } from './utils/AnalyticsContextProvider'; @@ -14,6 +14,7 @@ import ConsentComponentCustom from './Components/ConsentCustom'; import { Buffer } from 'buffer'; import { appLanguages } from './translations'; import { AesirXI18nextProvider } from './utils/I18nextProvider'; +import { getConsentTemplate } from './utils/consent'; window.Buffer = Buffer; declare global { @@ -24,6 +25,14 @@ declare global { } const ConsentPopup = ({ visitor_uuid, event_uuid }: any) => { window.process = { env: '' }; + const [layout, setLayout] = useState(window['consentLayout']); + useEffect(() => { + const init = async () => { + const data: any = await getConsentTemplate(window.location.host); + setLayout(data?.data?.template ?? window['consentLayout']); + }; + init(); + }, []); return ( { }} > - {window['consentLayout'] === 'original' ? ( + {layout === 'original' ? ( { aesirXEndpoint={window['aesirxEndpoint'] ?? 'https://api.aesirx.io'} gtagId={window['analyticsGtagId'] ?? ''} gtmId={window['analyticsGtmId'] ?? ''} - layout={window['consentLayout'] ?? ''} + layout={layout} /> )} diff --git a/src/utils/consent.ts b/src/utils/consent.ts index 8c9021f..cb3be28 100644 --- a/src/utils/consent.ts +++ b/src/utils/consent.ts @@ -308,6 +308,24 @@ const verifySignature = async ( } }; +const getConsentTemplate = async (domain: any) => { + try { + const endpointWeb3 = 'https://dev.web3id.backend.aesirx.io:8002'; + const data = await axios.get(`${endpointWeb3}/datastream/template/${domain}`, { + headers: { + 'Content-Type': 'application/json', + }, + }); + + if (data) { + return data; + } + throw false; + } catch (error) { + throw error; + } +}; + export { agreeConsents, getConsents, @@ -319,4 +337,5 @@ export { verifySignature, loadGtagScript, loadGtmScript, + getConsentTemplate, }; diff --git a/src/utils/index.ts b/src/utils/index.ts index baafad3..e6ef0d7 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -79,10 +79,14 @@ const startTracker = async ( sessionStorage.getItem('aesirx-analytics-flow') !== (await responseStart)?.flow_uuid ) { sessionStorage.setItem('aesirx-analytics-flow', (await responseStart)?.flow_uuid); - // await trackerService( - // rememberFlow(window.location.origin, (await responseStart)?.flow_uuid), - // {} - // ); + try { + await trackerService( + rememberFlow(window.location.origin, (await responseStart)?.flow_uuid), + {} + ); + } catch (error) { + console.log('Remember Flow Error', error); + } } return responseStart; } catch (error) { diff --git a/tsup.config.bundled_27kh1f91chl.mjs b/tsup.config.bundled_27kh1f91chl.mjs new file mode 100644 index 0000000..a9ab463 --- /dev/null +++ b/tsup.config.bundled_27kh1f91chl.mjs @@ -0,0 +1,49 @@ +// tsup.config.ts +import { defineConfig } from "tsup"; +import { sassPlugin } from "esbuild-sass-plugin"; +import inlineImage from "esbuild-plugin-inline-image"; +var env = process.env.NODE_ENV; +var tsup_config_default = defineConfig([ + { + entry: ["src/index.ts"], + clean: true, + dts: true, + format: ["esm"], + platform: "browser", + loader: { + ".js": "jsx" + }, + esbuildPlugins: [inlineImage({ limit: -1 }), sassPlugin({ type: "style" })], + // esbuildOptions(options) { + // if (env === 'production') { + // options.drop = ['console']; + // } + // }, + outExtension() { + return { + js: `.js` + }; + } + }, + { + entry: ["src/analytics.tsx"], + minify: true, + format: ["iife"], + platform: "browser", + esbuildPlugins: [inlineImage({ limit: -1 }), sassPlugin({ type: "style" })], + // esbuildOptions(options) { + // if (env === 'production') { + // options.drop = ['console']; + // } + // }, + outExtension() { + return { + js: `.js` + }; + } + } +]); +export { + tsup_config_default as default +}; +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidHN1cC5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9faW5qZWN0ZWRfZmlsZW5hbWVfXyA9IFwiL2hvbWUvdmlldC92aWV0L2FwcC9hbmFseXRpY3MvdHN1cC5jb25maWcudHNcIjtjb25zdCBfX2luamVjdGVkX2Rpcm5hbWVfXyA9IFwiL2hvbWUvdmlldC92aWV0L2FwcC9hbmFseXRpY3NcIjtjb25zdCBfX2luamVjdGVkX2ltcG9ydF9tZXRhX3VybF9fID0gXCJmaWxlOi8vL2hvbWUvdmlldC92aWV0L2FwcC9hbmFseXRpY3MvdHN1cC5jb25maWcudHNcIjtpbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tICd0c3VwJztcbmltcG9ydCB7IHNhc3NQbHVnaW4gfSBmcm9tICdlc2J1aWxkLXNhc3MtcGx1Z2luJztcbmltcG9ydCBpbmxpbmVJbWFnZSBmcm9tICdlc2J1aWxkLXBsdWdpbi1pbmxpbmUtaW1hZ2UnO1xuXG5jb25zdCBlbnYgPSBwcm9jZXNzLmVudi5OT0RFX0VOVjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKFtcbiAge1xuICAgIGVudHJ5OiBbJ3NyYy9pbmRleC50cyddLFxuICAgIGNsZWFuOiB0cnVlLFxuICAgIGR0czogdHJ1ZSxcbiAgICBmb3JtYXQ6IFsnZXNtJ10sXG4gICAgcGxhdGZvcm06ICdicm93c2VyJyxcbiAgICBsb2FkZXI6IHtcbiAgICAgICcuanMnOiAnanN4JyxcbiAgICB9LFxuICAgIGVzYnVpbGRQbHVnaW5zOiBbaW5saW5lSW1hZ2UoeyBsaW1pdDogLTEgfSksIHNhc3NQbHVnaW4oeyB0eXBlOiAnc3R5bGUnIH0pXSxcbiAgICAvLyBlc2J1aWxkT3B0aW9ucyhvcHRpb25zKSB7XG4gICAgLy8gICBpZiAoZW52ID09PSAncHJvZHVjdGlvbicpIHtcbiAgICAvLyAgICAgb3B0aW9ucy5kcm9wID0gWydjb25zb2xlJ107XG4gICAgLy8gICB9XG4gICAgLy8gfSxcbiAgICBvdXRFeHRlbnNpb24oKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBqczogYC5qc2AsXG4gICAgICB9O1xuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBlbnRyeTogWydzcmMvYW5hbHl0aWNzLnRzeCddLFxuICAgIG1pbmlmeTogdHJ1ZSxcbiAgICBmb3JtYXQ6IFsnaWlmZSddLFxuICAgIHBsYXRmb3JtOiAnYnJvd3NlcicsXG4gICAgZXNidWlsZFBsdWdpbnM6IFtpbmxpbmVJbWFnZSh7IGxpbWl0OiAtMSB9KSwgc2Fzc1BsdWdpbih7IHR5cGU6ICdzdHlsZScgfSldLFxuICAgIC8vIGVzYnVpbGRPcHRpb25zKG9wdGlvbnMpIHtcbiAgICAvLyAgIGlmIChlbnYgPT09ICdwcm9kdWN0aW9uJykge1xuICAgIC8vICAgICBvcHRpb25zLmRyb3AgPSBbJ2NvbnNvbGUnXTtcbiAgICAvLyAgIH1cbiAgICAvLyB9LFxuICAgIG91dEV4dGVuc2lvbigpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGpzOiBgLmpzYCxcbiAgICAgIH07XG4gICAgfSxcbiAgfSxcbl0pO1xuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUFxTyxTQUFTLG9CQUFvQjtBQUNsUSxTQUFTLGtCQUFrQjtBQUMzQixPQUFPLGlCQUFpQjtBQUV4QixJQUFNLE1BQU0sUUFBUSxJQUFJO0FBRXhCLElBQU8sc0JBQVEsYUFBYTtBQUFBLEVBQzFCO0FBQUEsSUFDRSxPQUFPLENBQUMsY0FBYztBQUFBLElBQ3RCLE9BQU87QUFBQSxJQUNQLEtBQUs7QUFBQSxJQUNMLFFBQVEsQ0FBQyxLQUFLO0FBQUEsSUFDZCxVQUFVO0FBQUEsSUFDVixRQUFRO0FBQUEsTUFDTixPQUFPO0FBQUEsSUFDVDtBQUFBLElBQ0EsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLE9BQU8sR0FBRyxDQUFDLEdBQUcsV0FBVyxFQUFFLE1BQU0sUUFBUSxDQUFDLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFNMUUsZUFBZTtBQUNiLGFBQU87QUFBQSxRQUNMLElBQUk7QUFBQSxNQUNOO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFBQSxFQUNBO0FBQUEsSUFDRSxPQUFPLENBQUMsbUJBQW1CO0FBQUEsSUFDM0IsUUFBUTtBQUFBLElBQ1IsUUFBUSxDQUFDLE1BQU07QUFBQSxJQUNmLFVBQVU7QUFBQSxJQUNWLGdCQUFnQixDQUFDLFlBQVksRUFBRSxPQUFPLEdBQUcsQ0FBQyxHQUFHLFdBQVcsRUFBRSxNQUFNLFFBQVEsQ0FBQyxDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLElBTTFFLGVBQWU7QUFDYixhQUFPO0FBQUEsUUFDTCxJQUFJO0FBQUEsTUFDTjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0YsQ0FBQzsiLAogICJuYW1lcyI6IFtdCn0K