From 8792819e3400956a33fc4ceaa45f0735d7e9ea9a Mon Sep 17 00:00:00 2001 From: Schalli Date: Wed, 16 Sep 2026 10:57:55 +0200 Subject: [PATCH] =?UTF-8?q?fix(quick-260916-dyv):=20Rechner-Mindesthoehe?= =?UTF-8?q?=2010=20statt=209=20Zeilen=20=E2=80=94=20sechs=20Tastenreihen,?= =?UTF-8?q?=20unterste=20Reihe=20war=20bei=209=20um=2025=20px=20abgeschnit?= =?UTF-8?q?ten=20(Browser-Messung)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_018N9CD3ebPKm1b32bPpBknY --- apps/web/src/components/dashboard/dashboard-grid.test.tsx | 8 ++++---- apps/web/src/components/dashboard/dashboard-grid.tsx | 2 +- .../web/src/components/dashboard/widget-registry.test.tsx | 2 +- apps/web/src/components/dashboard/widget-registry.tsx | 7 +++++-- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/apps/web/src/components/dashboard/dashboard-grid.test.tsx b/apps/web/src/components/dashboard/dashboard-grid.test.tsx index 8128b58..d16cebb 100644 --- a/apps/web/src/components/dashboard/dashboard-grid.test.tsx +++ b/apps/web/src/components/dashboard/dashboard-grid.test.tsx @@ -239,7 +239,7 @@ describe('DashboardGrid', () => { expect(passed.sm).toEqual([]); }); - it('quick-260916-dyv Test 9b: gespeicherte Groesse unter dem neuen Minimum wird auf das Minimum angehoben (Rechner h 8 -> 9, w bleibt wenn >= minW)', async () => { + it('quick-260916-dyv Test 9b: gespeicherte Groesse unter dem neuen Minimum wird auf das Minimum angehoben (Rechner h 8 -> 10, w bleibt wenn >= minW)', async () => { captured.props = null; const { DashboardGrid } = await import('./dashboard-grid'); const layouts = { @@ -268,10 +268,10 @@ describe('DashboardGrid', () => { ); const passed = captured.props?.layouts as Record>>; - expect(passed.lg[0]).toEqual({ i: 'calc-1', x: 0, y: 0, w: 6, h: 9, minW: 3, minH: 9 }); + expect(passed.lg[0]).toEqual({ i: 'calc-1', x: 0, y: 0, w: 6, h: 10, minW: 3, minH: 10 }); expect(passed.lg[1]).toEqual({ i: 'srch-1', x: 6, y: 0, w: 6, h: 4, minW: 6, minH: 2 }); - // Jeder Breakpoint: md-Rechner 3x7 -> 3x9 (w schon = minW, h angehoben). - expect(passed.md[0]).toEqual({ i: 'calc-1', x: 0, y: 0, w: 3, h: 9, minW: 3, minH: 9 }); + // Jeder Breakpoint: md-Rechner 3x7 -> 3x10 (w schon = minW, h angehoben). + expect(passed.md[0]).toEqual({ i: 'calc-1', x: 0, y: 0, w: 3, h: 10, minW: 3, minH: 10 }); // Eingabe unveraendert (keine Mutation des Store-Objekts). expect(layouts.lg[0].h).toBe(8); expect(layouts.lg[0].minH).toBe(8); diff --git a/apps/web/src/components/dashboard/dashboard-grid.tsx b/apps/web/src/components/dashboard/dashboard-grid.tsx index 36273fc..5eff727 100644 --- a/apps/web/src/components/dashboard/dashboard-grid.tsx +++ b/apps/web/src/components/dashboard/dashboard-grid.tsx @@ -76,7 +76,7 @@ interface DashboardGridProps { * die einzige Quelle (T-DYV-01: manipulierte Minima wirken nicht). * * Liegt die gespeicherte Groesse UNTER dem neuen Minimum (z. B. Rechner mit - * h 8, neues minH 9), wird w/h auf das Minimum angehoben: RGL selbst klemmt + * h 8, neues minH 10), wird w/h auf das Minimum angehoben: RGL selbst klemmt * w/h nur beim Vergroessern/Verkleinern (`minMaxSize.constrainSize`, * chunk-KDANGDDL.mjs:26-31; `minConstraints` an `Resizable`, * chunk-WGL5FSZH.mjs:472-475), rendert die zu kleine Kachel aber woertlich — diff --git a/apps/web/src/components/dashboard/widget-registry.test.tsx b/apps/web/src/components/dashboard/widget-registry.test.tsx index b0f95bb..a4a8bae 100644 --- a/apps/web/src/components/dashboard/widget-registry.test.tsx +++ b/apps/web/src/components/dashboard/widget-registry.test.tsx @@ -63,7 +63,7 @@ describe('WIDGET_CONSTRAINTS (DASH-11)', () => { search: { minW: 6, minH: 2, defaultW: 12, defaultH: 4 }, calendar: { minW: 3, minH: 3, defaultW: 8, defaultH: 12 }, note: { minW: 4, minH: 4, defaultW: 6, defaultH: 8 }, - calculator: { minW: 3, minH: 9, defaultW: 6, defaultH: 10 }, + calculator: { minW: 3, minH: 10, defaultW: 6, defaultH: 10 }, favorites: { minW: 3, minH: 3, defaultW: 6, defaultH: 10 }, link: { minW: 3, minH: 2, defaultW: 4, defaultH: 4 }, stopwatch: { minW: 4, minH: 3, defaultW: 6, defaultH: 6 }, diff --git a/apps/web/src/components/dashboard/widget-registry.tsx b/apps/web/src/components/dashboard/widget-registry.tsx index e0bbd8e..33dfc84 100644 --- a/apps/web/src/components/dashboard/widget-registry.tsx +++ b/apps/web/src/components/dashboard/widget-registry.tsx @@ -35,7 +35,7 @@ export const WIDGET_CONSTRAINTS: Record< // quick-260916-dyv: minW/minH = kleinste noch bedienbare Kachel je Typ im // 24-Spalten/20-px-Raster, aus dem Innenaufbau gerechnet (Suche: Auswahl 120 + // Eingabe + Knopf; Rechner: Anzeige 40 + Speicherzeile 28 + 5 Tastenreihen 28 = - // 240 px -> 9 Zeilen; Stoppuhr: kompakte Bedienleiste). defaultW/defaultH = + // 268 px -> 10 Zeilen; Stoppuhr: kompakte Bedienleiste). defaultW/defaultH = // altes 12-Spalten-Mass x2, unveraendert. Gespeicherte minW/minH werden in // dashboard-grid.tsx aus dieser Tabelle ueberschrieben. // Existing widgets @@ -44,7 +44,10 @@ export const WIDGET_CONSTRAINTS: Record< calendar: { minW: 3, minH: 3, defaultW: 8, defaultH: 12 }, note: { minW: 4, minH: 4, defaultW: 6, defaultH: 8 }, // Phase 8 new widgets (D-01) - calculator: { minW: 3, minH: 9, defaultW: 6, defaultH: 10 }, + // minH 10, nicht 9 (260916-dyv, Browser-Messung des Orchestrators): der Rechner hat + // SECHS Tastenreihen (%/CE/C/Loeschen, 1/x/x2/Wurzel/Division, 7-9, 4-6, 1-3, 0/Komma/=), + // Inhalt 268 px; bei 9 Zeilen (244 px) fehlte die unterste Reihe um 25 px. + calculator: { minW: 3, minH: 10, defaultW: 6, defaultH: 10 }, favorites: { minW: 3, minH: 3, defaultW: 6, defaultH: 10 }, link: { minW: 3, minH: 2, defaultW: 4, defaultH: 4 }, stopwatch: { minW: 4, minH: 3, defaultW: 6, defaultH: 6 },