chore(repo): checkpoint current capakraken implementation state

This commit is contained in:
2026-03-29 12:47:12 +02:00
parent beae1a5d6e
commit 47e4d701ff
94 changed files with 4283 additions and 1710 deletions
+4 -2
View File
@@ -108,8 +108,10 @@ export function useDashboardLayout() {
const onLayoutChange = useCallback(
(layout: { i: string; x: number; y: number; w: number; h: number }[]) => {
setConfig((prev) => {
const layoutMap = new Map(layout.map((item) => [item.i, item]));
const previousWidgetMap = new Map(prev.widgets.map((widget) => [widget.id, widget]));
const updatedWidgets = prev.widgets.map((w) => {
const item = layout.find((l) => l.i === w.id);
const item = layoutMap.get(w.id);
if (!item) return w;
return { ...w, x: item.x, y: item.y, w: item.w, h: item.h };
});
@@ -118,7 +120,7 @@ export function useDashboardLayout() {
// react-grid-layout fires onLayoutChange on mount too — we skip that
// to avoid overwriting saved positions with compacted coordinates.
const changed = updatedWidgets.some((w) => {
const orig = prev.widgets.find((o) => o.id === w.id);
const orig = previousWidgetMap.get(w.id);
return orig && (w.x !== orig.x || w.y !== orig.y || w.w !== orig.w || w.h !== orig.h);
});