diff --git a/src/views/message-center-view.jsx b/src/views/message-center-view.jsx
index 60ec6bd6..95b0ff0f 100644
--- a/src/views/message-center-view.jsx
+++ b/src/views/message-center-view.jsx
@@ -236,7 +236,15 @@ function MessageHome({view, connected, chatList, myUserId, onTopicSelected, onOp
// Was `useState(null)` + its own effect -- refetched from scratch (blank entries/badges for a
// beat) every time this component remounted, e.g. after a trip to another sidepanel and back.
const [bootstrap] = useCachedData(myUserId ? 'bootstrap:' + myUserId : null, getBootstrap, [myUserId]);
- const offline = view === 'messages-offline' || (!!myUserId && connected === false);
+ // sidepanel-view.jsx 会在 sidePanelSelected 已经是 'messages-home'(例如收藏夹里的旧链接、浏览器
+ // 从上次关闭前恢复的标签页)但 myUserId 还没就绪时,照样把这个视图渲染出来(它自己的
+ // `fullPage = !myUserId || view !== 'messages-home'` 分支就是为这种情况准备的)——如果这时候
+ // token 续登录失败或者还没跑完,原来这里只看 `!!myUserId && connected===false`,myUserId 本身是
+ // null 时这个条件恒为 false,于是不会进入"加载中"分支,会话列表和 bootstrap 又因为
+ // useCachedData 的 key 是 null 而永远不发请求,最终呈现的是一句容易误导人的"暂无会话/未找到
+ // 相关会话"——用户会以为账号是空的,而不是"还没登录成功"。myUserId 本身为空也按"未连接"处理,
+ // 至少诚实地展示"加载中"而不是一个看起来正常但其实是半成品的空列表。
+ const offline = view === 'messages-offline' || !myUserId || connected === false;
// "置顶" only ever changed a background tint (see the `pinned` comment inside
// normalizeConversations) -- every other IM this product's users have used floats a pinned chat to
@@ -326,7 +334,14 @@ function MessageHome({view, connected, chatList, myUserId, onTopicSelected, onOp
{item.unread ? {item.unread > 99 ? '99+' : item.unread} : item.muted ?
未找到相关会话
未找到相关会话
暂无会话