From f378fd05ef63a1141cad01880ee03a211ceb2c3f Mon Sep 17 00:00:00 2001 From: Hermes Date: Thu, 10 Sep 2026 11:32:14 +0200 Subject: [PATCH] =?UTF-8?q?fix(autocall):=20=D0=B1=D0=BB=D0=BE=D0=BA=20?= =?UTF-8?q?=C2=AB=D0=90=D0=B2=D1=82=D0=BE=D0=B4=D0=BE=D0=B7=D0=B2=D0=BE?= =?UTF-8?q?=D0=BD=C2=BB=20=D0=BD=D0=B5=20=D0=BF=D0=BE=D1=8F=D0=B2=D0=BB?= =?UTF-8?q?=D1=8F=D0=BB=D1=81=D1=8F=20=D0=B2=20=D0=BA=D0=B0=D1=80=D1=82?= =?UTF-8?q?=D0=BE=D1=87=D0=BA=D0=B5,=20=D0=B5=D1=81=D0=BB=D0=B8=20=D0=BF?= =?UTF-8?q?=D0=BE=D1=80=D1=8F=D0=B4=D0=BE=D0=BA=20=D0=B1=D0=BB=D0=BE=D0=BA?= =?UTF-8?q?=D0=BE=D0=B2=20=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD=D1=91=D0=BD?= =?UTF-8?q?=20=D0=B2=20localStorage=20=E2=80=94=20=D0=BC=D0=B5=D1=80=D0=B4?= =?UTF-8?q?=D0=B6=20=D1=81=20=D0=B4=D0=B5=D1=84=D0=BE=D0=BB=D1=82=D0=BE?= =?UTF-8?q?=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/orders/OrderDetailPanel.jsx | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/components/orders/OrderDetailPanel.jsx b/src/components/orders/OrderDetailPanel.jsx index 9e8eb6d..c06fd12 100644 --- a/src/components/orders/OrderDetailPanel.jsx +++ b/src/components/orders/OrderDetailPanel.jsx @@ -689,11 +689,21 @@ export const OrderDetailPanel = ({ // ---- Drag-and-drop block reordering state ---- const isLogisticsRole = ["manager", "logistician", "admin", "mega_admin"].includes(userRole); const [blockOrder, setBlockOrder] = React.useState(() => { + let saved = null; try { - const saved = JSON.parse(localStorage.getItem(ORDER_STORAGE_KEY) || "[]"); - if (Array.isArray(saved) && saved.length > 0) return saved; + const parsed = JSON.parse(localStorage.getItem(ORDER_STORAGE_KEY) || "[]"); + if (Array.isArray(parsed) && parsed.length > 0) saved = parsed; } catch {} - return DEFAULT_BLOCK_ORDER; + if (!saved) return DEFAULT_BLOCK_ORDER; + // Мердж с дефолтом: новые блоки (например, autocall_status) добавляются, + // устаревшие ключи удаляются — иначе сохранённый порядок навсегда скрывает новые блоки. + const merged = [ + // сначала сохранённые ключи, которые ещё актуальны + ...saved.filter((k) => DEFAULT_BLOCK_ORDER.includes(k)), + // затем новые блоки, которых нет в сохранённом — вставляем рядом со «Статус SMS» + ...DEFAULT_BLOCK_ORDER.filter((k) => !saved.includes(k)), + ]; + return merged; }); const [activeTab, setActiveTab] = React.useState(() => { try {