18 lines
551 B
Python
18 lines
551 B
Python
from typing import Callable
|
|
|
|
|
|
class RefreshService:
|
|
"""
|
|
rio.Components can subscribe to this service with their on_populate method.
|
|
Those methods get called whenever a overall refresh is needed. Usually when the user logs in or out.
|
|
"""
|
|
def __init__(self) -> None:
|
|
self.subscribers: set[Callable] = set()
|
|
|
|
def subscribe(self, refresh_cb: Callable) -> None:
|
|
self.subscribers.add(refresh_cb)
|
|
|
|
async def trigger_refresh(self) -> None:
|
|
for refresh_cb in self.subscribers:
|
|
await refresh_cb()
|