fix(client): 设备页每 15s 静默刷新列表,其他设备状态变化 ~15s 内可见
原设备列表打开时加载一次就不动(感觉十几分钟才同步)。加透传式轮询包装器 _DevicesAutoRefresh:在设备页期间每 15s 调 DevicesNotifier.refresh()(静默、不闪 loading、 失败保留旧列表)。配合服务端会话轮询刷 last_seen + 90s 窗口,其他设备上/下线 ~15s 内反映。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -89,6 +89,18 @@ class DevicesNotifier extends AsyncNotifier<List<Device>> {
|
||||
await future;
|
||||
}
|
||||
|
||||
/// 静默刷新(不闪 loading):重新拉列表、成功才替换。供设备页 ~15s 轮询,让其他设备的
|
||||
/// 在线/状态变化 ~15s 内可见(配合服务端会话轮询刷 last_seen)。
|
||||
Future<void> refresh() async {
|
||||
if (!ref.read(authProvider).isLoggedIn) return;
|
||||
try {
|
||||
final list = await ref.read(accountApiProvider).devices();
|
||||
state = AsyncData(list);
|
||||
} catch (_) {
|
||||
// 失败保留旧列表,不闪错。
|
||||
}
|
||||
}
|
||||
|
||||
/// 强制退出(吊销该设备会话,设备保留)后刷新列表。
|
||||
Future<void> forceLogout(String uuid) async {
|
||||
await ref.read(accountApiProvider).forceLogout(uuid);
|
||||
|
||||
Reference in New Issue
Block a user