From 4345f2322f4ee97b056161e84ae2daf8e5b2dc64 Mon Sep 17 00:00:00 2001 From: Gabriel Kaszewski Date: Sat, 29 Aug 2026 13:15:46 +0200 Subject: [PATCH] correlations --- spa/public/sw.js | 4 +++- spa/src/api/schema.ts | 2 ++ spa/src/components/metric/metric-row.tsx | 5 ++++- spa/src/components/stats/mood-correlations.tsx | 14 +++++++++++++- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/spa/public/sw.js b/spa/public/sw.js index c58f620..f8b753d 100644 --- a/spa/public/sw.js +++ b/spa/public/sw.js @@ -30,7 +30,9 @@ self.addEventListener("activate", (event) => { .keys() .then((keys) => Promise.all( - keys.filter((key) => key !== CACHE_NAME).map((key) => caches.delete(key)) + keys + .filter((key) => key !== CACHE_NAME) + .map((key) => caches.delete(key)) ) ) .then(() => self.clients.claim()) diff --git a/spa/src/api/schema.ts b/spa/src/api/schema.ts index 92c3d9d..d7c0189 100644 --- a/spa/src/api/schema.ts +++ b/spa/src/api/schema.ts @@ -317,6 +317,8 @@ export type DateSpanParams = z.infer export const CorrelationInputPayload = z.discriminatedUnion("kind", [ z.object({ kind: z.literal("metric"), metric: MetricKind }), z.object({ kind: z.literal("moonPhase") }), + z.object({ kind: z.literal("cycleProgress") }), + z.object({ kind: z.literal("temperature") }), z.object({ kind: z.literal("activity"), activityId: uuid, diff --git a/spa/src/components/metric/metric-row.tsx b/spa/src/components/metric/metric-row.tsx index 88b65ae..e701647 100644 --- a/spa/src/components/metric/metric-row.tsx +++ b/spa/src/components/metric/metric-row.tsx @@ -28,7 +28,10 @@ export function MetricRow({ return (
diff --git a/spa/src/components/stats/mood-correlations.tsx b/spa/src/components/stats/mood-correlations.tsx index b4d981a..cf82ab4 100644 --- a/spa/src/components/stats/mood-correlations.tsx +++ b/spa/src/components/stats/mood-correlations.tsx @@ -21,6 +21,10 @@ function labelOf(row: CorrelationRowResponse): string { } case "moonPhase": return "Moon phase" + case "cycleProgress": + return "Cycle progress" + case "temperature": + return "Temperature" case "activity": return input.name } @@ -34,8 +38,12 @@ function orderOf(row: CorrelationRowResponse): number { return METRIC_FIELDS.findIndex((f) => f.kind === input.metric) case "moonPhase": return METRIC_FIELDS.length - case "activity": + case "cycleProgress": return METRIC_FIELDS.length + 1 + case "temperature": + return METRIC_FIELDS.length + 2 + case "activity": + return METRIC_FIELDS.length + 3 } } @@ -84,6 +92,10 @@ function rowKey(row: CorrelationRowResponse): string { return `metric:${input.metric}` case "moonPhase": return "moonPhase" + case "cycleProgress": + return "cycleProgress" + case "temperature": + return "temperature" case "activity": return `activity:${input.activityId}` }