fix(alerts): обозначить недоступность событий префиксов

This commit is contained in:
Denozordec committed 2026-10-03 19:55:31 +07:00
1 parent f3ec6b31ce
commit c7e1f75e2e
5 files changed
+29 -5

No files matched your search

+9 -3
View File
@@ -710,12 +710,13 @@ function SeverityBadge({ severity }: { severity: AlertSeverity }) {
// ─── alert rule row ───────────────────────────────────────────────────────────
function AlertRuleRow({ rule, onToggle, onDelete, onEdit, interactionsDisabled }: {
function AlertRuleRow({ rule, onToggle, onDelete, onEdit, interactionsDisabled,isLive }: {
rule: AlertRule
onToggle: (id: string, enabled: boolean) => void
onDelete: (id: string) => void
onEdit?: (id: string) => void
interactionsDisabled?: boolean
isLive:boolean
}) {
const { Icon, iconClass, bg } = TYPE_META[rule.type]
@@ -725,7 +726,7 @@ function AlertRuleRow({ rule, onToggle, onDelete, onEdit, interactionsDisabled }
!rule.enabled && "opacity-55",
)}>
{/* toggle */}
<FormToggle ariaLabel={"Включить правило "+rule.name} checked={rule.enabled} onChange={v => onToggle(rule.id, v)} disabled={interactionsDisabled} />
<FormToggle ariaLabel={"Включить правило "+rule.name} checked={rule.enabled} onChange={v => onToggle(rule.id, v)} disabled={interactionsDisabled||(isLive&&rule.type==="bgp-prefix"&&!rule.enabled)} />
{/* severity dot */}
<SeverityDot severity={rule.severity} />
@@ -737,6 +738,7 @@ function AlertRuleRow({ rule, onToggle, onDelete, onEdit, interactionsDisabled }
{/* name + target */}
<div className="flex-1 min-w-0">
{isLive&&rule.type==="bgp-prefix"?<p role="status" className="text-xs text-warning">Отслеживание появления и отзыва префиксов пока недоступно. Это правило не проверяется.</p>:null}
<p className="text-sm font-medium truncate">{rule.name}</p>
<p className="text-[11px] text-muted-foreground truncate">
{TYPE_META[rule.type].label} ·{" "}
@@ -1722,6 +1724,8 @@ function AddRuleSheet({
{/* ── scrollable body ── */}
<fieldset disabled={saving} className="min-h-0 min-w-0 flex-1 overflow-y-auto px-4 sm:px-6 py-5 flex flex-col gap-5 [&>div]:shrink-0">
{isLive&&form.type==="bgp-prefix"?<p role="status" className="text-xs text-warning">Отслеживание появления и отзыва префиксов пока недоступно. Сохранённое правило не проверяется; можно изменить его тип или отключить в списке.</p>:null}
{/* name */}
<div className="flex flex-col gap-1.5">
<div className="flex items-center justify-between gap-2">
@@ -1768,6 +1772,7 @@ function AddRuleSheet({
key={t}
type="button"
aria-pressed={active}
disabled={isLive&&t==="bgp-prefix"}
onClick={() => {
nameTouchedRef.current = false
@@ -1801,7 +1806,7 @@ function AddRuleSheet({
{active && <CheckIcon className="size-3.5 shrink-0 text-primary" />}
</div>
<span className="text-[10px] text-muted-foreground leading-tight pl-0">
{TYPE_EVENT_CARD_DESC[t]}
{isLive&&t==="bgp-prefix"?"Отслеживание префиксов пока недоступно":TYPE_EVENT_CARD_DESC[t]}
</span>
</button>
)
@@ -2739,6 +2744,7 @@ function AlertsContent() {
onDelete={id=>setPendingDelete({kind:"rule",id})}
onEdit={openRuleSheetEdit}
interactionsDisabled={writesDisabled}
isLive={isLive}
/>
))}
</div>