diff --git a/src/web/ws.rs b/src/web/ws.rs index 6cefcac8..a4077d33 100644 --- a/src/web/ws.rs +++ b/src/web/ws.rs @@ -71,13 +71,13 @@ fn rebuild_event_tasks( let mut device_info_task_added = false; for topic in topics { if is_device_info_topic(&topic) && !device_info_task_added { + let state = state.clone(); let mut rx = state.subscribe_device_info(); let event_tx = event_tx.clone(); event_tasks.push(tokio::spawn(async move { - if let Some(snapshot) = rx.borrow().clone() { - if event_tx.send(BusMessage::Event(snapshot)).is_err() { - return; - } + let snapshot = state.get_device_info().await; + if event_tx.send(BusMessage::Event(snapshot)).is_err() { + return; } loop { diff --git a/web/src/views/ConsoleView.vue b/web/src/views/ConsoleView.vue index 7b06e061..9098fd72 100644 --- a/web/src/views/ConsoleView.vue +++ b/web/src/views/ConsoleView.vue @@ -174,6 +174,10 @@ const videoStatus = computed<'connected' | 'connecting' | 'disconnected' | 'erro if (videoError.value) return 'error' if (videoLoading.value) return 'connecting' + if (videoMode.value !== 'mjpeg') { + if (webrtc.isConnecting.value) return 'connecting' + if (webrtc.isConnected.value) return 'connected' + } if (systemStore.stream?.online) return 'connected' return 'disconnected' })