mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-09 13:01:00 +00:00
HealthLog — personal health-tracking PWA with weight, blood pressure, pulse, mood tracking, medication compliance, Withings integration, doctor report PDF export, and Dracula-themed UI.
51 lines
1.2 KiB
TypeScript
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} />
|
|
</>
|
|
);
|
|
}
|