Skip to content

页面刷新

父切面:Portal 数据面

前哨 / 入口 UI 用两个不同动词保持数据新鲜。不要与仅更新壳资源的 PWA / 安装器「reload」混为一谈。

动词何时发生什么
sync栖息地重连、标签页再次可见、离线同步 toast 重试Flush outbox;已 flush 的模块调用 refreshAll(见 离线平台
refresh顶栏 刷新 按钮或触控下拉刷新重跑该页的 reload* / 列表拉取(在线 withOfflineCache 已走网络)。按钮与下拉同一处理器
  • 有限自动:保留 sync + 既有 live 通道(聊天 stream.*conversation.updatedpomodoro.active.changednotification.created)。不对注意力或列表做全局轮询。outbox 为空时不对每个模块无条件 refreshAll。注意力路由 → 通知与提醒
  • 产品列表面须手动刷新,以便按需拉取多设备 / Agent 编辑。
  • 交互维度(见 UI 三维度,Agent API 见 frontend-ui):指针用顶栏按钮;触控主列表另有下拉刷新。壳种类不锁定交互方式。模式说明 → UI 模式(PullToRefresh 候选 / DataListRow 同级表面)。
  • 不在范围:为每个 CRUD 实体做栖息地扇出;引入 React Query (数据面上自建 hooks 可以);把离线同步 toast 变成页面刷新控件。
类别页面自动手动
A Stream聊天室SAP stream + 恢复轮询顶栏刷新(已有)
B CRUD outbox任务、项目、日记、笔记、日程挂载 / 选择 cache-first;本地写后 reload;sync → refreshAll顶栏 + 下拉刷新
C Hybrid outbox番茄钟pomodoro.active.changed离线 refreshAll 配置/统计
D snapshot邮件、通知、梦境、Vault挂载 / 依赖加载顶栏刷新(绑定列表处可下拉)
E HabitatOps 列表进入时加载显式刷新(已有)
F Settings壳设置打开时加载保存后重读
G Shell updatePWA / 安装器更新检查Reload / 安装 ≠ 业务刷新
  • 共享下拉手势:@freeanima/ui-kit/composite PullToRefresh(仅触控;忽略靠近左缘的起始,避免与抽屉滑动冲突)。视觉 / 触控目标规范 → UI 基础
  • 文案:m.habitat_common_refresh / m.habitat_common_refreshing
  • 后续(此处不要求):outbox 为空时仅对焦点模块做可见性软刷新。