Files
HiveGrid-Wireframes/03 Quellen und Referenzen/hivegrid-cloud/apps/web/app/modules/shared/scripts/ScriptAnalytics.tsx
T

40 lines
1.5 KiB
TypeScript

import { useLocation } from "react-router";
import { useRootData } from "~/utils/data/useRootData";
import { isAppOrAdminSurface } from "~/utils/app/HostAwareSurface";
import CookieHelper from "~/utils/helpers/CookieHelper";
import { CookieCategory } from "~/application/cookies/CookieCategory";
// EU-Sterilisation (R-P1a): Google-Analytics-Einbindung (gtag.js) entfernt. Es bleiben nur die
// datenschutzfreundlichen EU-Tracker SimpleAnalytics + Plausible, die der Admin opt-in aktiviert.
export default function ScriptAnalytics({ nonce }: { nonce?: string }) {
const rootData = useRootData();
const location = useLocation();
if (!rootData.appConfiguration?.analytics.enabled) {
return null;
}
if (isAppOrAdminSurface(rootData, location.pathname)) {
return null;
}
if (!CookieHelper.hasConsent(rootData.userSession ?? null, CookieCategory.ANALYTICS)) {
return null;
}
return (
<>
{rootData.appConfiguration?.analytics.simpleAnalytics && (
<>
<script nonce={nonce} async defer src="https://scripts.simpleanalyticscdn.com/latest.js"></script>
<noscript>
<img src="https://queue.simpleanalyticscdn.com/noscript.gif" alt="" referrerPolicy="no-referrer-when-downgrade" />
</noscript>
</>
)}
{rootData.appConfiguration?.analytics.plausibleAnalytics && (
<>
<script nonce={nonce} defer data-domain={rootData.domainName} src="https://plausible.io/js/script.js"></script>
</>
)}
</>
);
}