From 8e8a3aeb3e8704d60fe46a6f54f0ed2583049270 Mon Sep 17 00:00:00 2001 From: mwiegand Date: Sat, 16 May 2026 20:57:00 +0200 Subject: [PATCH] fix(files-editor): reset language dropdown on every modal open MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Without this, a user who picked a manual override (e.g. "Bash") on one open would see the stale selection on the next open while the editor itself silently re-derived from the filename via setEditorContent's setLanguage("auto") call. The displayed dropdown would lie about the active language. Additionally, the existing filename-input handler's "if (languageSelect.value === 'auto') re-derive" check was effectively disabled whenever the user had previously picked an override — renaming the file wouldn't re-derive even though the active language was already auto. Addresses Important #1 from the Task 10 code review. Co-Authored-By: Claude Opus 4.7 (1M context) --- l4d2web/l4d2web/static/js/files-overlay.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/l4d2web/l4d2web/static/js/files-overlay.js b/l4d2web/l4d2web/static/js/files-overlay.js index 8f30ce0..7f3e8eb 100644 --- a/l4d2web/l4d2web/static/js/files-overlay.js +++ b/l4d2web/l4d2web/static/js/files-overlay.js @@ -349,6 +349,13 @@ editor.folder = folder; editor.queuedReplacement = null; + // Reset the language dropdown to "auto" on every modal open so the + // displayed value matches what setEditorContent does internally + // (which always calls setLanguage("auto")). Without this, a user + // who picked a manual override on a previous open would see the + // stale selection while the editor language follows the new file. + if (languageSelect) languageSelect.value = "auto"; + setEditorTitle(`${folder ? folder + "/" : ""}…new file`); editorEls.filename.value = ""; editorEls.filename.disabled = false; @@ -373,6 +380,9 @@ editor.queuedReplacement = null; setQueuedReplacement(null); + // Reset the language dropdown — see openEditorTextNew for rationale. + if (languageSelect) languageSelect.value = "auto"; + editorEls.filename.value = basename(path); editorEls.filename.disabled = false; editorEls.renameHint.hidden = true;