diff --git a/frontend/src/MikrotikTools.jsx b/frontend/src/MikrotikTools.jsx index 39bf290..ef356e4 100644 --- a/frontend/src/MikrotikTools.jsx +++ b/frontend/src/MikrotikTools.jsx @@ -36,6 +36,7 @@ function MikrotikTools() { const [running, setRunning] = useState(false); const [hops, setHops] = useState([]); const [analysis, setAnalysis] = useState([]); + const [tracerouteTab, setTracerouteTab] = useState('table'); // 'table' | 'analysis' const [pingResult, setPingResult] = useState(null); const [useDns, setUseDns] = useState(true); @@ -508,144 +509,6 @@ function MikrotikTools() {
| Хоп | -Адрес / узел | -Среднее, мс | -Мин / Макс, мс | -Потери | -Статус | -
|---|---|---|---|---|---|
| - - {h.hop} - - | -
-
-
- {mainLabel}
-
- {ip && dns && (
-
- IP: {ip}
-
- )}
-
- |
- - {avg != null ? ( - 200 - ? 'text-danger fw-semibold' - : avg > 120 - ? 'text-warning fw-semibold' - : '' - } - > - {avg.toFixed(1)} - - ) : ( - '—' - )} - | -- {h.bestMs != null ? h.bestMs.toFixed(1) : '—'} /{' '} - {h.worstMs != null ? h.worstMs.toFixed(1) : '—'} - | -- {loss != null ? ( - = 50 - ? 'badge bg-red-lt text-red' - : loss > 0 - ? 'badge bg-yellow-lt text-yellow' - : 'badge bg-green-lt text-green' - } - > - {loss}% - - ) : ( - '—' - )} - | -- {severity === 'danger' && ( - Проблемный хоп - )} - {severity === 'warn' && ( - Возможная проблема - )} - - {statusRaw || (loss != null || avg != null ? 'OK' : '—')} - - | -
| Хоп | +Адрес / узел | +Среднее, мс | +Мин / Макс, мс | +Потери | +Статус | +
|---|---|---|---|---|---|
| + + {h.hop} + + | +
+
+
+ {mainLabel}
+
+ {ip && dns && (
+
+ IP: {ip}
+
+ )}
+
+ |
+ + {avg != null ? ( + 200 + ? 'text-danger fw-semibold' + : avg > 120 + ? 'text-warning fw-semibold' + : '' + } + > + {avg.toFixed(1)} + + ) : ( + '—' + )} + | ++ {h.bestMs != null ? h.bestMs.toFixed(1) : '—'} /{' '} + {h.worstMs != null ? h.worstMs.toFixed(1) : '—'} + | ++ {loss != null ? ( + = 50 + ? 'badge bg-red-lt text-red' + : loss > 0 + ? 'badge bg-yellow-lt text-yellow' + : 'badge bg-green-lt text-green' + } + > + {loss}% + + ) : ( + '—' + )} + | ++ {severity === 'danger' && ( + Проблемный хоп + )} + {severity === 'warn' && ( + Возможная проблема + )} + + {statusRaw || (loss != null || avg != null ? 'OK' : '—')} + + | +