From 19754baaaecd083ad37bfb6c404f56a7077afc18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A5=D0=B0=D0=BB=D0=B8=D0=BC=D0=BE=D0=B2=20=D0=A0=D1=83?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D0=BC?= Date: Sat, 27 Dec 2025 23:10:24 +0300 Subject: [PATCH] Fix --- src/App.tsx | 14 +++++--- src/components/LayoutStep.tsx | 68 +++++++++++++---------------------- src/types.ts | 7 ++-- 3 files changed, 37 insertions(+), 52 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 0120272..b1990e4 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -16,12 +16,14 @@ const App = () => { drawer: { width: 300, depth: 400, height: 80 }, wallThickness: 1.2, printerTolerance: 0.5, - cornerRadius: 4, // <--- Дефолтное скругление (4мм) + cornerRadius: 4, }); + // ИСПРАВЛЕНИЕ: Добавлено поле subdivisions const [splits, setSplits] = useState({ x: [], - y: [] + y: [], + subdivisions: {} }); // --- ЛОГИКА ВОССТАНОВЛЕНИЯ ИЗ ССЫЛКИ --- @@ -29,7 +31,11 @@ const App = () => { const sharedData = parseShareUrl(); if (sharedData) { setConfig(sharedData.config); - setSplits(sharedData.splits); + // Если в старой ссылке нет subdivisions, добавляем пустое + setSplits({ + ...sharedData.splits, + subdivisions: sharedData.splits.subdivisions || {} + }); setStep(3); setIsLoadedFromUrl(true); window.history.replaceState({}, '', window.location.pathname); @@ -122,7 +128,7 @@ const App = () => { {getSubdivision(selectedCell.i, selectedCell.j).cols} - {/* Колонки (Вертикально) */} + {/* Колонки */}
- + {getSubdivision(selectedCell.i, selectedCell.j).rows}
- diff --git a/src/types.ts b/src/types.ts index cc49616..f7c9591 100644 --- a/src/types.ts +++ b/src/types.ts @@ -11,16 +11,15 @@ export interface AppConfig { cornerRadius: number; } -// Новая структура: сколько рядов и колонок внутри конкретной ячейки export interface CellSubdivision { - rows: number; // горизонтальные ряды - cols: number; // вертикальные колонки + rows: number; + cols: number; } export interface LayoutSplits { x: number[]; y: number[]; - // Ключ - это индекс ячейки "xIndex-yIndex" (например "0-0") + // Добавляем обязательное поле, но разрешаем ему быть пустым subdivisions: Record; }