Skip to content

Commit

Permalink
Update get template
Browse files Browse the repository at this point in the history
  • Loading branch information
vietredweb committed Apr 26, 2024
1 parent fd6d881 commit c5cd7ad
Show file tree
Hide file tree
Showing 7 changed files with 139 additions and 29 deletions.
15 changes: 12 additions & 3 deletions src/AnalyticsNext/index.tsx
Original file line number Diff line number Diff line change
@@ -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 });
Expand All @@ -25,14 +26,22 @@ 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 (
<>
<AnalyticsContextProvider>
<AnalyticsHandle router={router} attributes={attributes}>
{children}
{process.env.NEXT_PUBLIC_DISABLE_ANALYTICS_CONSENT !== 'true' && (
<>
{oldLayout || process.env.NEXT_PUBLIC_CONSENT_LAYOUT === 'original' ? (
{oldLayout || layout === 'original' ? (
<ConsentComponent
endpoint={process.env.NEXT_PUBLIC_ENDPOINT_ANALYTICS_URL}
networkEnv={process.env.NEXT_PUBLIC_CONCORDIUM_NETWORK}
Expand All @@ -51,7 +60,7 @@ const AnalyticsNext = ({
isLoggedApp={isLoggedApp}
gtagId={process.env.NEXT_PUBLIC_ANALYTICS_GTAG_ID}
gtmId={process.env.NEXT_PUBLIC_ANALYTICS_GTM_ID}
layout={process.env.NEXT_PUBLIC_CONSENT_LAYOUT}
layout={layout}
/>
)}
</>
Expand Down
15 changes: 12 additions & 3 deletions src/AnalyticsReact/index.tsx
Original file line number Diff line number Diff line change
@@ -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'));
Expand All @@ -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 (
<AnalyticsContextProvider>
<AnalyticsHandle location={location} history={history}>
{children}
{process.env.REACT_APP_DISABLE_ANALYTICS_CONSENT !== 'true' && (
<Suspense fallback={<></>}>
{oldLayout || process.env.REACT_APP_CONSENT_LAYOUT === 'original' ? (
{oldLayout || layout === 'original' ? (
<ConsentComponent
endpoint={process.env.REACT_APP_ENDPOINT_ANALYTICS_URL}
networkEnv={process.env.REACT_APP_CONCORDIUM_NETWORK}
Expand All @@ -35,7 +44,7 @@ const AnalyticsReact = ({ location, history, oldLayout = false, children }: Anal
aesirXEndpoint={process.env.REACT_APP_ENDPOINT_URL ?? 'https://api.aesirx.io'}
gtagId={process.env.REACT_APP_ANALYTICS_GTAG_ID}
gtmId={process.env.REACT_APP_ANALYTICS_GTM_ID}
layout={process.env.REACT_APP_CONSENT_LAYOUT}
layout={layout}
/>
)}
</Suspense>
Expand Down
43 changes: 27 additions & 16 deletions src/Hooks/useConsentStatus.ts
Original file line number Diff line number Diff line change
Expand Up @@ -169,29 +169,36 @@ 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) {
l = 4;
}
}
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);
Expand All @@ -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) => {
Expand Down
15 changes: 12 additions & 3 deletions src/analytics.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand All @@ -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 {
Expand All @@ -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 (
<AnalyticsContext.Provider
value={{
Expand All @@ -35,7 +44,7 @@ const ConsentPopup = ({ visitor_uuid, event_uuid }: any) => {
}}
>
<AesirXI18nextProvider appLanguages={appLanguages}>
{window['consentLayout'] === 'original' ? (
{layout === 'original' ? (
<ConsentComponent
endpoint={window['aesirx1stparty'] ?? ''}
networkEnv={window['concordiumNetwork'] ?? ''}
Expand All @@ -50,7 +59,7 @@ const ConsentPopup = ({ visitor_uuid, event_uuid }: any) => {
aesirXEndpoint={window['aesirxEndpoint'] ?? 'https://api.aesirx.io'}
gtagId={window['analyticsGtagId'] ?? ''}
gtmId={window['analyticsGtmId'] ?? ''}
layout={window['consentLayout'] ?? ''}
layout={layout}
/>
)}
</AesirXI18nextProvider>
Expand Down
19 changes: 19 additions & 0 deletions src/utils/consent.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -319,4 +337,5 @@ export {
verifySignature,
loadGtagScript,
loadGtmScript,
getConsentTemplate,
};
12 changes: 8 additions & 4 deletions src/utils/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
49 changes: 49 additions & 0 deletions tsup.config.bundled_27kh1f91chl.mjs
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit c5cd7ad

Please sign in to comment.