Files
HealthLog/src/components/monitoring/umami-script.tsx
T
Marc-André Bombeck 38309932f3 Initial release v1.0.0
HealthLog — personal health-tracking PWA with weight, blood pressure,
pulse, mood tracking, medication compliance, Withings integration,
doctor report PDF export, and Dracula-themed UI.
2026-03-10 20:14:33 +01:00

42 lines
1018 B
TypeScript

"use client";
import { useEffect } from "react";
interface UmamiScriptProps {
enabled: boolean;
websiteId: string | null;
}
const SCRIPT_ID = "healthlog-umami-script";
export function UmamiScript({ enabled, websiteId }: UmamiScriptProps) {
useEffect(() => {
const existing = document.getElementById(SCRIPT_ID);
if (!enabled || !websiteId) {
existing?.remove();
return;
}
const script = document.createElement("script");
script.id = SCRIPT_ID;
script.defer = true;
script.src = "/api/monitoring/umami-script";
script.setAttribute("data-website-id", websiteId);
// Force same-origin tracking endpoint so CSP stays strict.
script.setAttribute("data-host-url", window.location.origin);
if (existing) {
existing.replaceWith(script);
} else {
document.head.appendChild(script);
}
return () => {
const current = document.getElementById(SCRIPT_ID);
current?.remove();
};
}, [enabled, websiteId]);
return null;
}