Files
HealthLog/src/components/monitoring/bootstrap.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

51 lines
1.2 KiB
TypeScript

"use client";
import { useEffect, useState } from "react";
import { UmamiScript } from "@/components/monitoring/umami-script";
import { GlitchtipReporter } from "@/components/monitoring/glitchtip-reporter";
interface MonitoringSettings {
umamiEnabled: boolean;
umamiWebsiteId: string | null;
glitchtipEnabled: boolean;
}
export function MonitoringBootstrap() {
const [settings, setSettings] = useState<MonitoringSettings | null>(null);
useEffect(() => {
let active = true;
fetch("/api/monitoring/settings", { cache: "no-store" })
.then((response) => (response.ok ? response.json() : null))
.then((json) => {
if (!active || !json?.data) return;
setSettings(json.data as MonitoringSettings);
})
.catch(() => {
if (!active) return;
setSettings({
umamiEnabled: false,
umamiWebsiteId: null,
glitchtipEnabled: false,
});
});
return () => {
active = false;
};
}, []);
if (!settings) return null;
return (
<>
<UmamiScript
enabled={settings.umamiEnabled}
websiteId={settings.umamiWebsiteId}
/>
<GlitchtipReporter enabled={settings.glitchtipEnabled} />
</>
);
}