From 24fbc7cc197f42474ae0410b65eca303c63c54a7 Mon Sep 17 00:00:00 2001 From: vegard Date: Thu, 19 Mar 2026 07:24:25 +0000 Subject: [PATCH] =?UTF-8?q?Paneler=20husker=20brukerens=20foretrukne=20st?= =?UTF-8?q?=C3=B8rrelse=20per=20verkt=C3=B8y-type?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- frontend/src/routes/+page.svelte | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/frontend/src/routes/+page.svelte b/frontend/src/routes/+page.svelte index 3b5d447..25e7f38 100644 --- a/frontend/src/routes/+page.svelte +++ b/frontend/src/routes/+page.svelte @@ -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; + } } }) .catch((err) => { @@ -114,6 +117,7 @@ let savedCamera = $state({ x: 0, y: 0, zoom: 1.0 }); let gridEnabled = $state(false); let savedThemes = $state([]); + let panelSizes = $state>({}); // 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, }, ], };