fix: dashboard edit mode renders live widgets

This commit is contained in:
ginnoir
2026-07-04 18:10:55 -05:00
parent 02b6ec6adb
commit 7eeb2f15bc
5 changed files with 91 additions and 7 deletions
+15 -1
View File
@@ -1,11 +1,12 @@
import { notFound } from "next/navigation";
import { Suspense } from "react";
import { getCurrentSession } from "@/lib/session";
import { parseDashboardLayout } from "@/lib/dashboard";
import { parseDashboardLayout, widgetContentKey } from "@/lib/dashboard";
import { computeDefaultLayout } from "@/lib/dashboard.server";
import { getWidget, getWidgetMetas } from "@/modules/_core";
import { getDashboardBySlug } from "@/app/d/actions";
import { DashboardEditor } from "@/components/dashboard-editor";
import { DashboardWidgetContent } from "@/components/dashboard-widget-content";
import { EditDashboardButton } from "@/components/edit-dashboard-button";
import { DashboardSwitcher } from "@/components/dashboard-switcher";
import { DashboardTab } from "@/components/dashboard-tab";
@@ -52,11 +53,24 @@ export default async function DashboardPage({
const widgetMetas = getWidgetMetas();
if (isEditing) {
const ctx = { userId: user.id, householdId: household.id };
const widgetContents = Object.fromEntries(
layout.widgets.map((placement) => [
widgetContentKey(placement),
<DashboardWidgetContent
key={widgetContentKey(placement)}
placement={placement}
ctx={ctx}
/>,
]),
);
return (
<DashboardEditor
dashboard={{ id: dashboard.id, name: dashboard.name, slug: dashboard.slug }}
layout={layout}
widgetMetas={widgetMetas}
widgetContents={widgetContents}
/>
);
}