Support configurable upstream analytics

This commit is contained in:
2026-08-26 10:04:11 +00:00
parent 64435223e2
commit bca0e1ca8a
+9 -3
View File
@@ -5,12 +5,17 @@ let source = readFileSync(appPath, "utf8");
const analyticsStart = " const [cookieSettings, setCookieSettings] = useState(localStorage.getItem(\"cookie-settings\"));"; const analyticsStart = " const [cookieSettings, setCookieSettings] = useState(localStorage.getItem(\"cookie-settings\"));";
const analyticsEnd = " const hasSpeedDial ="; const analyticsEnd = " const hasSpeedDial =";
const consentStart = " {!window.isElectron && cookieSettings === null && !sidebarForceHidden && ("; const analyticsConfig = "const GOOGLE_ANALYTICS_ID = import.meta.env.VITE_GOOGLE_ANALYTICS_ID;\n";
const consentStarts = [
" {!window.isElectron && cookieSettings === null && !sidebarForceHidden && (",
" {GOOGLE_ANALYTICS_ID && !window.isElectron && cookieSettings === null && !sidebarForceHidden && (",
];
const consentEnd = " <SimpleBar "; const consentEnd = " <SimpleBar ";
const hasKnownAnalytics = source.includes("G-SLZ5TY9MVN"); const hasKnownAnalytics = source.includes("G-SLZ5TY9MVN") || source.includes(analyticsConfig);
const hasKnownState = source.includes(analyticsStart); const hasKnownState = source.includes(analyticsStart);
const hasKnownConsent = source.includes(consentStart); const consentStart = consentStarts.find(marker => source.includes(marker));
const hasKnownConsent = consentStart !== undefined;
if (hasKnownState && hasKnownConsent) { if (hasKnownState && hasKnownConsent) {
const analyticsStartIndex = source.indexOf(analyticsStart); const analyticsStartIndex = source.indexOf(analyticsStart);
@@ -33,6 +38,7 @@ if (hasKnownState && hasKnownConsent) {
throw new Error("Cannot remove the Button import used by the upstream consent dialog."); throw new Error("Cannot remove the Button import used by the upstream consent dialog.");
} }
source = source.replace(materialImport, "Typography, Grid"); source = source.replace(materialImport, "Typography, Grid");
source = source.replace(analyticsConfig, "");
console.log("Removed the upstream Google Analytics integration and consent dialog."); console.log("Removed the upstream Google Analytics integration and consent dialog.");
} else if (hasKnownAnalytics || hasKnownState || hasKnownConsent) { } else if (hasKnownAnalytics || hasKnownState || hasKnownConsent) {