Paneler husker brukerens foretrukne størrelse per verktøy-type
Når et panel resizes lagres width/height per trait-type i workspace-metadata. Neste gang verktøyet instansieres brukes den lagrede størrelsen i stedet for default. Persisteres mellom besøk. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
e520b8037c
commit
24fbc7cc19
1 changed files with 10 additions and 2 deletions
|
|
@ -90,6 +90,9 @@
|
|||
if (Array.isArray(meta.savedThemes)) {
|
||||
savedThemes = meta.savedThemes as ThemeConfig[];
|
||||
}
|
||||
if (meta.panelSizes && typeof meta.panelSizes === 'object') {
|
||||
panelSizes = meta.panelSizes as Record<string, { width: number; height: number }>;
|
||||
}
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
|
|
@ -114,6 +117,7 @@
|
|||
let savedCamera = $state<Camera>({ x: 0, y: 0, zoom: 1.0 });
|
||||
let gridEnabled = $state(false);
|
||||
let savedThemes = $state<ThemeConfig[]>([]);
|
||||
let panelSizes = $state<Record<string, { width: number; height: number }>>({});
|
||||
|
||||
// When workspace node appears in store (after creation), load its layout
|
||||
$effect(() => {
|
||||
|
|
@ -161,6 +165,7 @@
|
|||
camera: savedCamera,
|
||||
gridEnabled,
|
||||
savedThemes,
|
||||
panelSizes,
|
||||
preferences: {
|
||||
...(currentMeta.preferences ?? {}),
|
||||
theme: themeToMetadata(currentTheme),
|
||||
|
|
@ -197,6 +202,8 @@
|
|||
y: panel.y + (dy ?? 0),
|
||||
};
|
||||
layout = { ...layout };
|
||||
// Remember size per trait type
|
||||
panelSizes = { ...panelSizes, [trait]: { width, height } };
|
||||
persistLayout();
|
||||
}
|
||||
}
|
||||
|
|
@ -220,6 +227,7 @@
|
|||
function handleAddPanel(trait: string) {
|
||||
if (layout.panels.some(p => p.trait === trait)) return;
|
||||
const info = getPanelInfo(trait);
|
||||
const remembered = panelSizes[trait];
|
||||
const maxY = layout.panels.length > 0
|
||||
? Math.max(...layout.panels.map(p => p.y + p.height))
|
||||
: 0;
|
||||
|
|
@ -230,8 +238,8 @@
|
|||
trait,
|
||||
x: 30,
|
||||
y: maxY + 30,
|
||||
width: info.defaultWidth,
|
||||
height: info.defaultHeight,
|
||||
width: remembered?.width ?? info.defaultWidth,
|
||||
height: remembered?.height ?? info.defaultHeight,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue