fix(ui): сделать сетевые показатели и настройки читаемыми в обеих темах

This commit is contained in:
Denozordec committed 2026-10-15 14:37:30 +07:00
1 parent 3c9096804b
commit 3d51bba86d
21 files changed
+5148 -31

No files matched your search

-2
View File
@@ -456,7 +456,6 @@ function AnalyticsTab({ sessions }: { sessions: BgpSession[] }) {
return (
<div className="flex flex-col gap-5">
<KpiStatGrid
gridClassName="grid-cols-2 @3xl:grid-cols-2 @6xl:grid-cols-4"
aria-label="Сводка префиксов BGP"
items={[
{
@@ -812,7 +811,6 @@ function BgpPageContent({ selectedServerId, selectedSessionId, activeTab, onSele
)}
<KpiStatGrid
gridClassName="grid-cols-2 @3xl:grid-cols-2 @6xl:grid-cols-4"
aria-label="Сводка BGP"
items={[
{
-1
View File
@@ -617,7 +617,6 @@ function GrePageContent({ selectedServerId, selectedTunnelId, allTunnelsHref, on
<KpiStatGrid
aria-label="Сводка GRE"
gridClassName="grid-cols-2 @3xl:grid-cols-2 @6xl:grid-cols-4"
items={[
{
id: "tunnels",
-2
View File
@@ -1062,7 +1062,6 @@ function BfdTab({ sessions, dataIncomplete, hasSearch }: { sessions: BfdSession[
return (
<div className="flex flex-col gap-4">
<KpiStatGrid
gridClassName="grid-cols-2 md:grid-cols-4"
aria-label="Сводка BFD"
items={[
{
@@ -1373,7 +1372,6 @@ function OspfPageContent({ search, selectedNodeId, onSearch, onSelectNode, filte
)}
{(activeTab === "interfaces" || unavailable || isLive && !liveData) && <KpiStatGrid
gridClassName="grid-cols-2 md:grid-cols-3"
aria-label="Сводка OSPF"
items={[
{
+4 -8
View File
@@ -12,6 +12,7 @@ import { RecursiveGatewayChoices, type GatewayOption } from "@/components/recurs
import { FormField, SectionTitle } from "@/components/form-kit"
import { DataPageCard } from "@/components/data-page-card"
import { Frame, FramePanel } from "@/components/reui/frame"
import { Badge } from "@/components/reui/badge"
import { Button } from "@/components/ui/button"
import { Input } from "@/components/ui/input"
import { Sheet, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle } from "@/components/ui/sheet"
@@ -330,15 +331,10 @@ function RouteSheet({
function TypeChip({ type }: { type: "jump-host" | "exit-node" | "home-router" }) {
return (
<span className={cn(
"inline-flex items-center rounded px-1.5 py-0.5 text-[10px] font-bold border shrink-0",
type === "home-router" ? "bg-success/10 text-success border-success/20" :
type === "jump-host"
? "bg-focus/10 text-focus border-focus/20"
: "bg-info/10 text-info border-info/20",
)}>
<Badge size="xs" className="shrink-0 text-foreground"
variant={type === "home-router" ? "success-light" : type === "jump-host" ? "primary-light" : "info-light"}>
{type === "jump-host" ? "JH" : type === "home-router" ? "HR" : "EN"}
</span>
</Badge>
)
}
+4 -3
View File
@@ -949,7 +949,8 @@ function RouteOptimizerContent({requestedServer,onSelectServer}:{requestedServer
contentClassName="px-5 py-4 flex flex-col gap-4"
>
<div className={cn("flex flex-col gap-3 transition-opacity", !ecmpEnabled && "opacity-40 pointer-events-none")}>
<fieldset disabled={!ecmpEnabled} className="flex min-w-0 flex-col gap-3">
<legend className="sr-only">Параметры черновика ECMP</legend>
<div className="flex flex-col gap-1.5">
<span className="text-xs text-muted-foreground">Макс. путей</span>
<div className="flex items-center gap-2">
@@ -966,7 +967,7 @@ function RouteOptimizerContent({requestedServer,onSelectServer}:{requestedServer
{([["per-dst","По dst"],["per-conn","По conn"],["per-packet","По пакет"]] as const).map(([v, l]) => (
<button type="button" disabled={!ecmpEnabled} aria-pressed={ecmpAlgo===v} key={v} onClick={() => setEcmpAlgo(v)}
className={cn("flex-1 transition-colors cursor-pointer",
ecmpAlgo === v ? "bg-focus text-primary-foreground" : "text-muted-foreground hover:bg-muted")}>
ecmpAlgo === v ? "bg-muted text-foreground" : "text-muted-foreground hover:bg-muted")}>
{l}
</button>
))}
@@ -977,7 +978,7 @@ function RouteOptimizerContent({requestedServer,onSelectServer}:{requestedServer
<InfoIcon aria-hidden="true" className="size-3 shrink-0 mt-0.5" />
<span>Черновой сценарий ECMP для сравнения настроек.</span>
</div>
</div>
</fieldset>
</OpsPanel>
{/* RPF Card */}
-1
View File
@@ -298,7 +298,6 @@ function VxlanPageContent({ selectedServerId, selectedTunnelId, allTunnelsHref,
<KpiStatGrid
aria-label="Сводка VXLAN"
gridClassName="grid-cols-2 @3xl:grid-cols-2 @6xl:grid-cols-4"
items={[
{
id: "tunnels",