diff --git a/frontend/src/pages/DeviceDetail.tsx b/frontend/src/pages/DeviceDetail.tsx
index 034a92d..0830bc3 100644
--- a/frontend/src/pages/DeviceDetail.tsx
+++ b/frontend/src/pages/DeviceDetail.tsx
@@ -25,6 +25,7 @@ import {
Typography,
message,
} from 'antd'
+import { useQueryClient } from '@tanstack/react-query'
import dayjs from 'dayjs'
import { useState } from 'react'
import { useNavigate, useParams } from 'react-router-dom'
@@ -386,6 +387,7 @@ export function DeviceDetailPage() {
const { data: device, isLoading } = useDevice(objId, deviceId)
const deleteDevice = useDeleteDevice(objId)
+ const qc = useQueryClient()
const [editOpen, setEditOpen] = useState(false)
const [activeTab, setActiveTab] = useState('info')
const [liveStatus, setLiveStatus] = useState<{ status: string; ping_ms: number | null } | null>(null)
@@ -394,6 +396,7 @@ export function DeviceDetailPage() {
onDeviceStatus: (ev) => {
if (ev.device_id === deviceId) {
setLiveStatus({ status: ev.status, ping_ms: ev.ping_ms })
+ qc.invalidateQueries({ queryKey: ['device', objId, deviceId] })
}
},
})
diff --git a/frontend/src/pages/ObjectDetail.tsx b/frontend/src/pages/ObjectDetail.tsx
index bf703ac..108c1fd 100644
--- a/frontend/src/pages/ObjectDetail.tsx
+++ b/frontend/src/pages/ObjectDetail.tsx
@@ -457,7 +457,7 @@ export function ObjectDetailPage({ defaultMode = 'inventory' }: { defaultMode?:
? ⟳
: null
- const showLastSeen = d.status !== 'online' && d.last_seen && d.last_ping_at !== d.last_seen
+ const showLastSeen = d.last_seen && d.last_ping_at !== d.last_seen
return (