feat: add case-sensitive sorting for file list
This commit is contained in:
@@ -80,7 +80,8 @@
|
||||
}
|
||||
|
||||
try {
|
||||
const files = await fileListRequest();
|
||||
let files = await fileListRequest();
|
||||
files = fileSortFiles(files, "name-asc");
|
||||
state.files = {};
|
||||
fileListClear();
|
||||
fileListRender(files);
|
||||
@@ -168,6 +169,32 @@
|
||||
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) {
|
||||
for (const f of files) {
|
||||
const safeName = fileSanitizeName(f.name);
|
||||
|
Reference in New Issue
Block a user