diff --git a/frontend/src/pages/ObjectDetail.tsx b/frontend/src/pages/ObjectDetail.tsx index 94c580c..47e9d01 100644 --- a/frontend/src/pages/ObjectDetail.tsx +++ b/frontend/src/pages/ObjectDetail.tsx @@ -434,13 +434,10 @@ export function ObjectDetailPage({ defaultMode = 'inventory' }: { defaultMode?: if (row._type === 'group') return null const d = row as DeviceRow - // Мониторинг выключен и история отсутствует - if (!d.monitor_enabled && !d.last_ping_at) { - return выключен - } - - // Мониторинг включён, но ни разу не пинговалось - if (d.monitor_enabled && !d.last_ping_at) { + // Нет никаких данных о пинге + const pingTime = d.last_ping_at ?? d.last_seen + if (!pingTime) { + if (!d.monitor_enabled) return выключен return ожидание... } @@ -448,30 +445,35 @@ export function ObjectDetailPage({ defaultMode = 'inventory' }: { defaultMode?: ? : null - // Устройство online — last_ping_at ≈ last_seen + // Устройство online if (d.status === 'online') { return ( - - - {dayjs(d.last_ping_at).format('DD.MM.YYYY HH:mm')} - + + + + {dayjs(pingTime).format('DD.MM.YYYY HH:mm')} + + {pauseIcon} - + ) } - // Устройство offline или unknown — показываем время попытки, в tooltip — когда был онлайн - const lastSeenHint = d.last_seen + // Устройство offline или unknown + // pingTime = последняя попытка (last_ping_at) или последний онлайн (last_seen как fallback) + const lastSeenHint = d.last_seen && d.last_ping_at && d.last_ping_at !== d.last_seen ? `онлайн был: ${dayjs(d.last_seen).format('DD.MM.YYYY HH:mm')}` - : 'онлайн не был' + : null return ( - - - {dayjs(d.last_ping_at).format('DD.MM.YYYY HH:mm')} - + + + + {dayjs(pingTime).format('DD.MM.YYYY HH:mm')} + + {pauseIcon} - + ) }, },