feat: add case-sensitive sorting for file list
This commit is contained in:
@@ -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);
|
||||||
|
Reference in New Issue
Block a user