fix(ui): отделить измерения цепочек от модели

This commit is contained in:
Denozordec committed 2026-10-01 00:41:54 +07:00
1 parent 9404bd5136
commit 255f272fab
7 files changed
+82 -13

No files matched your search

@@ -108,7 +108,7 @@ function RouteOptimizerFullRoutesDataGrid({
<div>
<div className="font-medium">{r.jh.label}</div>
<div className="font-mono text-[10px] text-muted-foreground">
{r.hw.pingMs} мс · ↓{r.hw.dlMbps} ↑{r.hw.ulMbps}
Модель: {r.hw.pingMs} мс · ↓{r.hw.dlMbps} ↑{r.hw.ulMbps}
</div>
</div>
</div>
@@ -130,7 +130,7 @@ function RouteOptimizerFullRoutesDataGrid({
<span className="text-[10px] text-muted-foreground">({r.exit.site})</span>
</div>
<div className="font-mono text-[10px] text-muted-foreground">
{r.je.pingMs} мс · ↓{r.je.dlMbps} ↑{r.je.ulMbps}
Модель: {r.je.pingMs} мс · ↓{r.je.dlMbps} ↑{r.je.ulMbps}
</div>
</div>
)
@@ -141,7 +141,7 @@ function RouteOptimizerFullRoutesDataGrid({
id: "totalPing",
accessorFn: (row) => row.hw.pingMs + row.je.pingMs,
header: ({ column }) => (
<DataGridSortHeader column={column} title="Ping (итого)" className="mx-auto" />
<DataGridSortHeader column={column} title="Ping модели" className="mx-auto" />
),
cell: ({ row }) => {
const totalPing = row.original.hw.pingMs + row.original.je.pingMs
@@ -161,7 +161,7 @@ function RouteOptimizerFullRoutesDataGrid({
)
},
meta: {
headerTitle: "Ping (итого)",
headerTitle: "Ping модели",
headerClassName: cn(DATA_GRID_CELL_PAD, "text-center"),
cellClassName: cn(DATA_GRID_CELL_PAD, "text-center"),
},
@@ -231,7 +231,7 @@ function RouteOptimizerFullRoutesDataGrid({
id: "confidence",
accessorKey: "confidence",
header: ({ column }) => (
<DataGridSortHeader column={column} title="Conf." className="mx-auto" />
<DataGridSortHeader column={column} title="Категория модели" className="mx-auto" />
),
cell: ({ row }) => (
<div className="flex justify-center">
@@ -239,7 +239,7 @@ function RouteOptimizerFullRoutesDataGrid({
</div>
),
meta: {
headerTitle: "Conf.",
headerTitle: "Категория модели",
headerClassName: DATA_GRID_CELL_PAD_LAST,
cellClassName: cn(DATA_GRID_CELL_PAD_LAST, "text-center"),
},
@@ -129,21 +129,24 @@ function RouteOptimizerWanMatrixDataGrid({
<span
className={cn(
"font-mono text-xs font-semibold",
leg.pingMs < 10
leg.observed && leg.observed.pingMs === null ? "text-muted-foreground" : (leg.observed?.pingMs ?? leg.pingMs) < 10
? "text-success "
: leg.pingMs < 25
: (leg.observed?.pingMs ?? leg.pingMs) < 25
? "text-foreground"
: "text-warning ",
)}
>
{leg.pingMs} мс
{leg.observed ? (leg.observed.pingMs ?? "—") : leg.pingMs} мс
</span>
<span className="text-[10px] text-muted-foreground font-mono">
↓{leg.dlMbps} ↑{leg.ulMbps}
↓{leg.observed ? (leg.observed.dlMbps ?? "—") : leg.dlMbps} ↑{leg.observed ? (leg.observed.ulMbps ?? "—") : leg.ulMbps}
</span>
{leg.observed && <span className="text-[10px] text-muted-foreground">
{leg.observed.probeId ? <>Снимок пробы · Ping: {leg.observed.pingAt ? <time dateTime={leg.observed.pingAt}>{new Date(leg.observed.pingAt).toLocaleString("ru-RU")}</time> : "дата неизвестна"}. Скорость: дата неизвестна.</> : "Измерения отсутствуют"}
</span>}
<div className="flex items-center gap-1.5 mt-0.5">
<span className="text-[10px] font-mono text-foreground/70">score {leg.score}</span>
{leg.loss > 0 && <LossChip loss={leg.loss} />}
<span className="text-[10px] font-mono text-foreground/70">модель {leg.score}</span>
{(leg.observed ? (leg.observed.lossPct ?? 0) : leg.loss) > 0 && <LossChip loss={leg.observed?.lossPct ?? leg.loss} />}
</div>
</div>
</div>