diff --git a/clive/__private/ui/app.py b/clive/__private/ui/app.py index 7c067ca069f5e2fce1cd4e65776ff77840e7c159..31ee7a602c72eaa4bff4efd9d725dc85c096cd4e 100644 --- a/clive/__private/ui/app.py +++ b/clive/__private/ui/app.py @@ -263,6 +263,16 @@ class Clive(App[int]): def resume_refresh_beekeeper_wallet_lock_status_interval(self) -> None: self._refresh_beekeeper_wallet_lock_status_interval.resume() + def pause_periodic_intervals(self) -> None: + self.pause_refresh_node_data_interval() + self.pause_refresh_alarms_data_interval() + self.pause_refresh_beekeeper_wallet_lock_status_interval() + + def resume_periodic_intervals(self) -> None: + self.resume_refresh_node_data_interval() + self.resume_refresh_alarms_data_interval() + self.resume_refresh_beekeeper_wallet_lock_status_interval() + def trigger_profile_watchers(self) -> None: self.world.mutate_reactive(TUIWorld.profile_reactive) # type: ignore[arg-type] @@ -432,9 +442,7 @@ class Clive(App[int]): if source == "beekeeper_wallet_lock_status_update_worker": self.notify("Switched to the LOCKED mode due to timeout.", timeout=10) - self.pause_refresh_node_data_interval() - self.pause_refresh_alarms_data_interval() - self.pause_refresh_beekeeper_wallet_lock_status_interval() + self.pause_periodic_intervals() # There might be ongoing workers that should be cancelled (e.g. DynamicWidget update) self._cancel_workers_except_current() @@ -446,9 +454,7 @@ class Clive(App[int]): async def _switch_mode_into_unlocked(self) -> None: await self.switch_mode_with_reset("dashboard") self.update_alarms_data_on_newest_node_data(suppress_cancelled_error=True) - self.resume_refresh_node_data_interval() - self.resume_refresh_alarms_data_interval() - self.resume_refresh_beekeeper_wallet_lock_status_interval() + self.resume_periodic_intervals() def _cancel_workers_except_current(self) -> None: try: diff --git a/tests/tui/conftest.py b/tests/tui/conftest.py index 0d60de09de6f4d2699b6a5ecd99ae8101ade4cc9..86ef1c9dd1c2808b2604c999cdaee886563b45ac 100644 --- a/tests/tui/conftest.py +++ b/tests/tui/conftest.py @@ -99,9 +99,7 @@ async def prepared_tui_on_dashboard(prepared_env: PreparedTuiEnv) -> PreparedTui # update the data and resume timers (pilot skips onboarding/unlocking via TUI - updating is handled there) await pilot.app.update_alarms_data_on_newest_node_data().wait() - pilot.app.resume_refresh_node_data_interval() - pilot.app.resume_refresh_alarms_data_interval() - pilot.app.resume_refresh_beekeeper_wallet_lock_status_interval() + pilot.app.resume_periodic_intervals() await pilot.app.push_screen(Dashboard()) await wait_for_screen(pilot, Dashboard)