Fix #184: file upload replaces the main editing area on /new
CI / test (pull_request) Successful in 48s
CI / docker (pull_request) Skipped

Image files render fitted into the editor area (editor and gutter
hidden); the title auto-fills with the file name. Text files always
load their content into the editor, replacing any text already there,
instead of only filling an empty editor. Title auto-fill still only
applies when the title is blank; a typed title is never overwritten.
Drawing and cropping tools are noted in the issue as possible future
work and are intentionally not implemented here.
This commit is contained in:
fen
2026-09-10 11:54:59 -05:00
parent 9621faa052
commit 6c1bfaf15e
+10 -8
View File
@@ -280,11 +280,12 @@ async function showFileInEditor(file) {
if (!TEXT_EXTS.has(extOf(file.name))) return; // unknown binary: leave editor alone
try {
const text = await file.text();
if (!content.value.trim()) {
content.value = text;
updateGutter();
guessLang();
}
// #184: the file replaces the main editing area, so the text always
// loads over whatever was in the editor (same rule as images, which
// hide the editor entirely).
content.value = text;
updateGutter();
guessLang();
} catch (e) {}
}
@@ -306,9 +307,10 @@ function setAttachedFile(file) {
attachedFile = file;
renderFileChip();
setHidden('file-text-note', false);
// #171: title auto-fill — images take the file name; text files use the
// language-placeholder convention (e.g. Python.py, fallback Text.txt).
// Only when the title is still blank; never overwrite a typed title.
// #171/#184: title auto-fill — images take the file name; text files
// use the language-placeholder convention (e.g. Python.py, fallback
// Text.txt). Only when the title is still blank; never overwrite a
// typed title.
if (!$('title').value.trim()) {
if (IMAGE_RE.test(file.type)) {
$('title').value = file.name;