fix: Fix connection table sort error

#108
This commit is contained in:
MystiPanda
2024-01-17 12:54:54 +08:00
parent 53375bb536
commit 98bad48971
2 changed files with 23 additions and 50 deletions

View File

@@ -1,38 +0,0 @@
import { GridComparatorFn } from "@mui/x-data-grid";
const UNITS = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
const unitMap = new Map<string, number>();
unitMap.set("分钟前", 60);
unitMap.set("小时前", 60 * 60);
unitMap.set("天前", 60 * 60 * 24);
unitMap.set("个月前", 60 * 60 * 24 * 30);
unitMap.set("年前", 60 * 60 * 24 * 30 * 12);
export const sortWithUnit: GridComparatorFn<string> = (v1, v2) => {
const [ret1, unit1] = v1.split(" ");
const [ret2, unit2] = v2.split(" ");
let value1 =
parseFloat(ret1) *
Math.pow(1024, UNITS.indexOf(unit1.replace("/s", "").trim()));
let value2 =
parseFloat(ret2) *
Math.pow(1024, UNITS.indexOf(unit2.replace("/s", "").trim()));
return value1 - value2;
};
export const sortStringTime: GridComparatorFn<string> = (v1, v2) => {
if (v1 === "几秒前") {
return -1;
}
if (v2 === "几秒前") {
return 1;
}
const matches1 = v1.match(/[0-9]+/);
const num1 = matches1 !== null ? parseInt(matches1[0]) : 0;
const matches2 = v2.match(/[0-9]+/);
const num2 = matches2 !== null ? parseInt(matches2[0]) : 0;
const unit1 = unitMap.get(v1.replace(num1.toString(), "").trim()) || 0;
const unit2 = unitMap.get(v2.replace(num2.toString(), "").trim()) || 0;
return num1 * unit1 - num2 * unit2;
};