feat: add case-sensitive sorting for file list

This commit is contained in:
2025-09-03 23:17:24 +02:00
parent 419a7e5c1a
commit 0edc734766

View File

@@ -80,7 +80,8 @@
} }
try { try {
const files = await fileListRequest(); let files = await fileListRequest();
files = fileSortFiles(files, "name-asc");
state.files = {}; state.files = {};
fileListClear(); fileListClear();
fileListRender(files); fileListRender(files);
@@ -168,6 +169,32 @@
return cleanedFilename + extension; return cleanedFilename + extension;
} }
function fileSortFiles(files, mode = "name-asc") {
function cmpCodePoint(a, b) {
if (a === b) return 0;
return a < b ? -1 : 1;
}
const arr = files.slice();
switch (mode) {
case "name-asc":
arr.sort((a, b) => cmpCodePoint(a.Name, b.Name));
break;
case "name-desc":
arr.sort((a, b) => cmpCodePoint(b.Name, a.Name));
break;
case "size-asc":
arr.sort((a, b) => a.Size - b.Size);
break;
case "size-desc":
arr.sort((a, b) => b.Size - a.Size);
break;
}
return arr;
}
function fileValidateBeforeUpload(files) { function fileValidateBeforeUpload(files) {
for (const f of files) { for (const f of files) {
const safeName = fileSanitizeName(f.name); const safeName = fileSanitizeName(f.name);