From 827f59ed3c9c9a01c4761272e48ff0a8472608eb Mon Sep 17 00:00:00 2001 From: Maximilian Kaske Date: Sun, 5 Jul 2026 20:28:48 +0200 Subject: [PATCH] chore: minor stuff --- .../[id]/status-reports/[reportId]/page.tsx | 38 ++++++--------- .../status-report-updates/data-table.tsx | 47 +++++++++---------- .../components/forms/components/update.tsx | 28 +++++------ .../components/forms/monitor/form-general.tsx | 3 +- .../src/data/status-report-updates.client.ts | 44 +++++++++++++++++ packages/api/src/router/page.ts | 15 +++--- 6 files changed, 102 insertions(+), 73 deletions(-) diff --git a/apps/dashboard/src/app/(dashboard)/status-pages/[id]/status-reports/[reportId]/page.tsx b/apps/dashboard/src/app/(dashboard)/status-pages/[id]/status-reports/[reportId]/page.tsx index 3e24d35b..fe4410e0 100644 --- a/apps/dashboard/src/app/(dashboard)/status-pages/[id]/status-reports/[reportId]/page.tsx +++ b/apps/dashboard/src/app/(dashboard)/status-pages/[id]/status-reports/[reportId]/page.tsx @@ -27,8 +27,10 @@ import { } from "@/components/forms/status-report-update/form-status-report"; import { FormSheetStatusReportUpdate } from "@/components/forms/status-report-update/sheet"; import { + defaultComponentImpacts, getNextStatus, impactsEqual, + toCreateStatusReportUpdateInput, } from "@/data/status-report-updates.client"; import { useTRPC } from "@/lib/trpc/client"; @@ -104,36 +106,24 @@ export default function Page() { ({ - pageComponentId: c.id, - impact: - nextStatus === "resolved" - ? "operational" - : (currentImpacts.get(c.id) ?? "operational"), - })), + componentImpacts: defaultComponentImpacts({ + components: statusReport.pageComponents, + currentImpacts, + nextStatus, + }), }} components={statusReport.pageComponents.map((c) => ({ id: c.id, name: c.name, }))} onSubmit={async (values: FormValues) => { - // a legacy report stays legacy unless the operator actively - // sets a non-operational impact — never silently flip it green - const sendImpacts = - reportHasImpacts || - values.componentImpacts?.some( - (ci) => ci.impact !== "operational", - ); - await createStatusReportUpdateMutation.mutateAsync({ - statusReportId: statusReport.id, - message: values.message, - status: values.status, - componentImpacts: sendImpacts - ? values.componentImpacts - : undefined, - date: values.date, - notifySubscribers: values.notifySubscribers, - }); + await createStatusReportUpdateMutation.mutateAsync( + toCreateStatusReportUpdateInput({ + statusReportId: statusReport.id, + values, + reportHasImpacts, + }), + ); }} >