40 lines
1.5 KiB
TypeScript
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>
|
|
</>
|
|
)}
|
|
</>
|
|
);
|
|
}
|