From 15ec93f82e434ec6c6e74a69bd193c10ca5389a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kacprzak?= Date: Mon, 3 Aug 2026 01:40:15 +0200 Subject: [PATCH] Delay manual snapshot refresh --- frigate_camera_control_bridge/static/app.js | 6 +++++- tests/test_ui_render.py | 7 +++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/frigate_camera_control_bridge/static/app.js b/frigate_camera_control_bridge/static/app.js index 2aeaf1e..3c491d0 100644 --- a/frigate_camera_control_bridge/static/app.js +++ b/frigate_camera_control_bridge/static/app.js @@ -1,3 +1,5 @@ +const SNAPSHOT_REFRESH_DELAY_MS = 2000; + function formatRemaining(totalSeconds) { const seconds = Math.max(0, Math.ceil(totalSeconds)); const minutes = Math.floor(seconds / 60); @@ -122,7 +124,9 @@ function refreshSnapshot(button) { button.setAttribute("aria-busy", "true"); image.addEventListener("load", cleanup, { once: true }); image.addEventListener("error", cleanup, { once: true }); - image.src = url.toString(); + window.setTimeout(() => { + image.src = url.toString(); + }, SNAPSHOT_REFRESH_DELAY_MS); } document.addEventListener("click", (event) => { diff --git a/tests/test_ui_render.py b/tests/test_ui_render.py index 355a4f9..d65568e 100644 --- a/tests/test_ui_render.py +++ b/tests/test_ui_render.py @@ -1,4 +1,5 @@ import unittest +from pathlib import Path from frigate_camera_control_bridge.ui import camera_stream_url, render_page @@ -114,6 +115,12 @@ class UiRenderTest(unittest.TestCase): self.assertIn("

Camera Friendly

", html) self.assertNotIn("

camera_key

", html) + def test_manual_snapshot_refresh_waits_before_fetch(self): + script = Path("frigate_camera_control_bridge/static/app.js").read_text(encoding="utf-8") + + self.assertIn("SNAPSHOT_REFRESH_DELAY_MS = 2000", script) + self.assertIn("window.setTimeout", script) + if __name__ == "__main__": unittest.main()