feat: 50 игр на Lua + импорт Roblox для всех + поддержка Lua в плеере #39
@ -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',
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user