From 3f9f7cd6c7821fa5e267c03e5ccc5bc16ac2cec2 Mon Sep 17 00:00:00 2001 From: min Date: Tue, 9 Jun 2026 01:55:54 +0300 Subject: [PATCH] =?UTF-8?q?fix(editor):=20=D1=83=D0=B1=D1=80=D0=B0=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=BC=D0=BE=D0=B4=D0=B0=D0=BB=D0=BA=D0=B0=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=B4=D1=82=D0=B2=D0=B5=D1=80=D0=B6=D0=B4=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=BF=D1=80=D0=B8=20=D1=81=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=B5=20=D1=8F=D0=B7=D1=8B=D0=BA=D0=B0=20=D1=81=D0=BA=D1=80?= =?UTF-8?q?=D0=B8=D0=BF=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit При переключении JS↔Lua показывалась модалка "Сменить язык?" даже если код не пустой. Юзер: не нужна, переключай сразу. Сейчас: код остаётся как есть, меняется только подсветка синтаксиса Monaco. Если код был пустой шаблон — подставляется новый шаблон языка. --- src/editor/ScriptEditor.jsx | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/src/editor/ScriptEditor.jsx b/src/editor/ScriptEditor.jsx index ce52d5d..d26f4a5 100644 --- a/src/editor/ScriptEditor.jsx +++ b/src/editor/ScriptEditor.jsx @@ -348,20 +348,9 @@ function ScriptEditor({ value, onSave, onRunSolo, isSoloRunning, scriptId, targe onLanguageChange(lang, nextCode); return; } - // Код не пустой — показываем кастомную модалку. - // ВАЖНО: lang захвачен через map'a, но localCode и onLanguageChange - // надо взять из ref'ов на момент confirm, иначе stale closure. - const targetLang = lang; - setConfirmState({ - title: `Сменить язык на ${targetLang === 'lua' ? 'Lua' : 'JavaScript'}?`, - message: `Код останется как есть — синтаксис прежнего языка перестанет подсвечиваться, но текст не исчезнет. Можно переключиться обратно в любой момент.`, - confirmLabel: `Сменить на ${targetLang === 'lua' ? 'Lua' : 'JS'}`, - cancelLabel: 'Отмена', - onConfirm: () => { - // Берём актуальное значение из ref (не stale closure) - onLanguageChange(targetLang, localCodeRef.current); - }, - }); + // Код не пустой — переключаем сразу, без модалки. + // Код остаётся как есть, только подсветка синтаксиса меняется. + onLanguageChange(lang, localCodeRef.current); }} style={{ padding: '4px 12px',