"use client" import {OpsPanel} from "@/components/ops-panel" import {Button} from "@/components/ui/button" import type {useAlertsTargets} from "@/hooks/use-alerts-targets" export function AlertsTargetsStatus({catalogs}:{catalogs:ReturnType}){ const rows=[{key:"bgp" as const,label:"BGP",note:"API не сообщает о полноте опроса устройств."},{key:"servers" as const,label:"Серверы",note:"Подписи устройств для целей GRE."},{key:"gre" as const,label:"GRE",note:"Без статуса API состояние туннеля неизвестно."}] return {rows.map(({key,label,note})=>{const state=catalogs[key];const count=key==="gre"?catalogs.gre.data?.tunnels.length:key==="bgp"?catalogs.bgp.data?.length:catalogs.servers.data?.length return

{label}

{state.loading?"Обновление…":state.data===undefined?"Данные ещё не получены.":"Получено объектов: "+count}{state.receivedAt?" Последний успешный ответ: "+new Date(state.receivedAt).toLocaleString("ru-RU"):""}

{state.error?

{state.error}{state.data!==undefined?". Показан последний успешный каталог.":""}

:null}

{note}

})}
}