Skip to content

Commit d6f13d3

Browse files
committed
refactor(file-browser): deduplicate renameFile flow and add prompt validation
- Enforce `required: true` on the file/folder rename prompt to prevent empty inputs. - Unify post-rename side effects (recents update, editor tab URI sync, tree state, success toast, reload) across standard and Termux filesystem paths. - Wrap standard filesystem rename execution inside the master try-catch block to gracefully capture errors. (AI generated commit message)
1 parent 1123cec commit d6f13d3

1 file changed

Lines changed: 16 additions & 30 deletions

File tree

src/pages/fileBrowser/fileBrowser.js

Lines changed: 16 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1094,6 +1094,7 @@ function FileBrowserInclude(mode, info, doesOpenLast = true) {
10941094
case "rename": {
10951095
let newname = await prompt(strings.rename, name, "text", {
10961096
match: config.FILE_NAME_REGEX,
1097+
required: true,
10971098
});
10981099

10991100
newname = helpers.fixFilename(newname);
@@ -1158,40 +1159,25 @@ function FileBrowserInclude(mode, info, doesOpenLast = true) {
11581159
}
11591160

11601161
async function renameFile(newname) {
1161-
if (isTermuxUrl(url)) {
1162-
if (helpers.isDir(type)) {
1163-
alert(strings.warning, strings["rename not supported"]);
1164-
return;
1165-
} else {
1166-
// Special handling for Termux content files
1167-
const fs = fsOperation(url);
1168-
try {
1162+
let newUrl;
1163+
try {
1164+
if (isTermuxUrl(url)) {
1165+
if (helpers.isDir(type)) {
1166+
alert(strings.warning, strings["rename not supported"]);
1167+
return;
1168+
} else {
1169+
// Special handling for Termux content files
1170+
const fs = fsOperation(url);
11691171
const content = await fs.readFile();
1170-
const newUrl = Url.join(Url.dirname(url), newname);
1171-
await fsOperation(Url.dirname(url)).createFile(newname, content);
1172+
const dirname = Url.dirname(url);
1173+
newUrl = Url.join(dirname, newname);
1174+
await fsOperation(dirname).createFile(newname, content);
11721175
await fs.delete();
1173-
1174-
recents.removeFile(url);
1175-
recents.addFile(newUrl);
1176-
const file = editorManager.getFile(url, "uri");
1177-
if (file) {
1178-
file.uri = newUrl;
1179-
file.filename = newname;
1180-
}
1181-
openFolder.renameItem(url, newUrl, newname);
1182-
toast(strings.success);
1183-
reload();
1184-
return;
1185-
} catch (err) {
1186-
window.log("error", err);
1187-
helpers.error(err);
1188-
return;
11891176
}
1177+
} else {
1178+
const fs = fsOperation(url);
1179+
newUrl = await fs.renameTo(newname);
11901180
}
1191-
}
1192-
const fs = fsOperation(url);
1193-
try {
1194-
const newUrl = await fs.renameTo(newname);
11951181
recents.removeFile(url);
11961182
recents.addFile(newUrl);
11971183
const file = editorManager.getFile(url, "uri");

0 commit comments

Comments
 (0)