feat(catalog): SSR stats in Visual Manager, honest deletes, newPageParent

Pass DB totals into StatsBar, mirror Catalog Structure delete copy, and open New Page with ?newPageParent= for shop and BC.

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
SimoandCursor committed 2026-07-18 21:14:55 +02:00
1 parent b7fd19b6d9
commit 8d1cf86105
7 files changed
+118 -38

No files matched your search

@@ -13,7 +13,7 @@ import { BreadcrumbBar } from "./breadcrumb-bar";
import { InlineEditor, type PageUpdateData } from "./inline-editor";
import { RootTabs } from "./root-tabs";
import { SortableTree } from "./sortable-tree";
import { StatsBar } from "./stats-bar";
import { type CatalogStatsTotals, StatsBar } from "./stats-bar";
import {
CatalogManagerProvider,
type CatalogManagerMode,
@@ -29,10 +29,12 @@ export function CatalogManagerDialog({
initialRoots = [],
catalogType = "normal",
canEdit = false,
totals = null,
}: {
initialRoots?: RootTab[];
catalogType?: CatalogManagerMode;
canEdit?: boolean;
totals?: CatalogStatsTotals | null;
}) {
const [open, setOpen] = useState(false);
const [mounted, setMounted] = useState(false);
@@ -89,6 +91,7 @@ export function CatalogManagerDialog({
open={open}
onOpenChange={setOpen}
initialRoots={initialRoots}
totals={totals}
/>
</CatalogManagerProvider>
</div>
@@ -104,10 +107,12 @@ function CatalogManagerInner({
open,
onOpenChange,
initialRoots,
totals,
}: {
open: boolean;
onOpenChange: (v: boolean) => void;
initialRoots: RootTab[];
totals?: CatalogStatsTotals | null;
}) {
const { state, dispatch, catalogType, canEdit } = useCatalogManager();
const catQs = catalogTreeQs(catalogType);
@@ -300,7 +305,7 @@ function CatalogManagerInner({
</div>
</div>
<StatsBar />
<StatsBar totals={totals} />
</TooltipProvider>
);
}