diff --git a/frontend/src/RouteOptimizerPage.jsx b/frontend/src/RouteOptimizerPage.jsx index 65df374..16943e6 100644 --- a/frontend/src/RouteOptimizerPage.jsx +++ b/frontend/src/RouteOptimizerPage.jsx @@ -22,6 +22,19 @@ function fmtProb(v) { return typeof v === 'number' ? `${v}%` : '—'; } +const OPT_TABLE_STYLE = { tableLayout: 'fixed', width: '100%' }; +const OPT_COLS = ['24%', '20%', '22%', '18%', '16%']; + +function OptimizerColgroup() { + return ( + + {OPT_COLS.map((w) => ( + + ))} + + ); +} + export default function RouteOptimizerPage() { const [loading, setLoading] = useState(true); const [error, setError] = useState(''); @@ -131,7 +144,8 @@ export default function RouteOptimizerPage() { )}
- +
+ @@ -150,9 +164,9 @@ export default function RouteOptimizerPage() { ) : hjCandidates.map((c) => ( - - - + +
Jumphost
{c.jumphost?.label || c.jumphost?.dns || c.jumphost?.ip || 'jumphost'}{c.interfaceName || '—'} + {c.jumphost?.label || c.jumphost?.dns || c.jumphost?.ip || 'jumphost'}{c.interfaceName || '—'} ping: {c.pingMs ?? '—'} ms, speed: {c.speedMbps ?? '—'} Mbps @@ -187,7 +201,8 @@ export default function RouteOptimizerPage() {
Полные маршруты Home → Jumphost → Exit
- +
+ @@ -206,7 +221,7 @@ export default function RouteOptimizerPage() { ) : routes.map((r) => ( - - - @@ -261,7 +276,8 @@ export default function RouteOptimizerPage() {
-
Маршрут
+ {r.home?.label} {r.jumphost?.label} @@ -216,10 +231,10 @@ export default function RouteOptimizerPage() { {r.probabilityOptimal}% + ping: {r.homeToJumphost?.pingMs ?? '—'} ms, speed: {r.homeToJumphost?.speedMbps ?? '—'} Mbps + ping: {r.jumphostToExit?.pingMs ?? '—'} ms, speed: {r.jumphostToExit?.speedMbps ?? '—'} Mbps {r.score}
+
+ @@ -280,7 +296,7 @@ export default function RouteOptimizerPage() { ) : rows.map((r) => ( - - - -
Community
+
{r.community}
{(r.communityInfo?.name || r.communityInfo?.description) && (
@@ -288,7 +304,7 @@ export default function RouteOptimizerPage() {
)}
+
{r.current?.gateway || r.currentGateway || '—'}
{r.current?.tunnelGateway && (
@@ -303,7 +319,7 @@ export default function RouteOptimizerPage() {
)}
+
{r.recommended?.gateway || '—'}
{r.pinnedBySettings && (
@@ -326,7 +342,7 @@ export default function RouteOptimizerPage() {
{fmtProb(r.current?.probabilityOptimal)} / {fmtProb(r.recommended?.probabilityOptimal)} + {r.current == null && r.recommended == null ? ( Недостаточно данных ) : r.pinnedBySettings && !r.pinnedGatewayResolved ? (