fix(editor): убрана модалка подтверждения при смене языка скрипта
При переключении JS↔Lua показывалась модалка "Сменить язык?" даже если код не пустой. Юзер: не нужна, переключай сразу. Сейчас: код остаётся как есть, меняется только подсветка синтаксиса Monaco. Если код был пустой шаблон — подставляется новый шаблон языка.
This commit is contained in:
parent
bf2447f86e
commit
3f9f7cd6c7
@ -348,20 +348,9 @@ function ScriptEditor({ value, onSave, onRunSolo, isSoloRunning, scriptId, targe
|
|||||||
onLanguageChange(lang, nextCode);
|
onLanguageChange(lang, nextCode);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Код не пустой — показываем кастомную модалку.
|
// Код не пустой — переключаем сразу, без модалки.
|
||||||
// ВАЖНО: lang захвачен через map'a, но localCode и onLanguageChange
|
// Код остаётся как есть, только подсветка синтаксиса меняется.
|
||||||
// надо взять из ref'ов на момент confirm, иначе stale closure.
|
onLanguageChange(lang, localCodeRef.current);
|
||||||
const targetLang = lang;
|
|
||||||
setConfirmState({
|
|
||||||
title: `Сменить язык на ${targetLang === 'lua' ? 'Lua' : 'JavaScript'}?`,
|
|
||||||
message: `Код останется как есть — синтаксис прежнего языка перестанет подсвечиваться, но текст не исчезнет. Можно переключиться обратно в любой момент.`,
|
|
||||||
confirmLabel: `Сменить на ${targetLang === 'lua' ? 'Lua' : 'JS'}`,
|
|
||||||
cancelLabel: 'Отмена',
|
|
||||||
onConfirm: () => {
|
|
||||||
// Берём актуальное значение из ref (не stale closure)
|
|
||||||
onLanguageChange(targetLang, localCodeRef.current);
|
|
||||||
},
|
|
||||||
});
|
|
||||||
}}
|
}}
|
||||||
style={{
|
style={{
|
||||||
padding: '4px 12px',
|
padding: '4px 12px',
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user