diff --git a/src/app/insights/page.tsx b/src/app/insights/page.tsx index 5d99b14a3..a5ef009e8 100644 --- a/src/app/insights/page.tsx +++ b/src/app/insights/page.tsx @@ -633,10 +633,10 @@ export default function InsightsPage() { staleTime: 60 * 1000, }); const w = analytics?.summaries?.WEIGHT; - const sys = analytics?.summaries.BLOOD_PRESSURE_SYS; - const dia = analytics?.summaries.BLOOD_PRESSURE_DIA; - const p = analytics?.summaries.PULSE; - const bf = analytics?.summaries.BODY_FAT; + const sys = analytics?.summaries?.BLOOD_PRESSURE_SYS; + const dia = analytics?.summaries?.BLOOD_PRESSURE_DIA; + const p = analytics?.summaries?.PULSE; + const bf = analytics?.summaries?.BODY_FAT; const showBodyFatCard = (bf?.count ?? 0) > 0; const moodSummary = data?.moodSummary; const showMoodCard = (moodSummary?.count ?? 0) > 0; @@ -710,7 +710,7 @@ export default function InsightsPage() { classifyRangeValue(bmiAvg30, bmiRange), ]); const bpMedications = - data?.medications.filter( + data?.medications?.filter( (medication) => medication.category === "BLOOD_PRESSURE", ) ?? []; const bpMedicationCompliance30 = diff --git a/src/app/notifications/page.tsx b/src/app/notifications/page.tsx index affa7140f..fd83f6cbd 100644 --- a/src/app/notifications/page.tsx +++ b/src/app/notifications/page.tsx @@ -112,7 +112,7 @@ export default function NotificationsPage() { }); function isEnabled(channelId: string, eventType: string): boolean { - const pref = data?.preferences.find( + const pref = data?.preferences?.find( (p) => p.channelId === channelId && p.eventType === eventType, ); // Opt-out model: default is ON when no preference row exists diff --git a/src/app/page.tsx b/src/app/page.tsx index f53c95e04..456cc3936 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -198,12 +198,12 @@ export default function DashboardPage() { }); const w = data?.summaries?.WEIGHT; - const sys = data?.summaries.BLOOD_PRESSURE_SYS; - const dia = data?.summaries.BLOOD_PRESSURE_DIA; - const p = data?.summaries.PULSE; - const bf = data?.summaries.BODY_FAT; - const sleepSummary = data?.summaries.SLEEP_DURATION; - const stepsSummary = data?.summaries.ACTIVITY_STEPS; + const sys = data?.summaries?.BLOOD_PRESSURE_SYS; + const dia = data?.summaries?.BLOOD_PRESSURE_DIA; + const p = data?.summaries?.PULSE; + const bf = data?.summaries?.BODY_FAT; + const sleepSummary = data?.summaries?.SLEEP_DURATION; + const stepsSummary = data?.summaries?.ACTIVITY_STEPS; const moodSummary = moodData?.summary; // Resolve full dashboard layout — controls visibility + order of every widget diff --git a/src/components/admin/login-overview-section.tsx b/src/components/admin/login-overview-section.tsx index 9631f1e85..548debca6 100644 --- a/src/components/admin/login-overview-section.tsx +++ b/src/components/admin/login-overview-section.tsx @@ -45,7 +45,7 @@ export function LoginOverviewSection({ id }: { id: string }) { const entries = filter === "failed" - ? data?.entries.filter((e) => e.action === "auth.login.failed") + ? data?.entries?.filter((e) => e.action === "auth.login.failed") : data?.entries; return ( diff --git a/src/components/measurements/measurement-list.tsx b/src/components/measurements/measurement-list.tsx index 43b3256d0..2a54ead9d 100644 --- a/src/components/measurements/measurement-list.tsx +++ b/src/components/measurements/measurement-list.tsx @@ -300,7 +300,7 @@ export function MeasurementList({ onEdit }: MeasurementListProps) {