feat(web): 下线自主注册与协议勾选,修复转发消息报错,转发选择器分组+全选
按产品决定移除面向国内客户不适用的自主注册入口:删除 /register 路由 及 RegisterPage、登录页"马上注册"链接、登录/注册共用的协议勾选组件 Agreement,以及仅注册流程使用的 registerAccount/queueAccExtra 等 死代码;登录不再依赖勾选协议才能提交。 修复转发消息报错(真实高频bug,不限于个别场景):`forwardMessage`/ `sendText` 发送前只是 `tinode.getTopic()` 取一个本地话题对象,从未 真正订阅——SDK 要求话题处于 attached 状态才允许发布,而只有当前正 打开的会话才满足这一点,一旦切换过/离开过某个会话(哪怕之前订阅过 预览),它就会变回未订阅状态。也就是说转发给"当前会话之外"几乎任何 一个联系人都会失败。新增 `ensureTopicAttached()`,在转发前按需临时 订阅目标话题,单条转发和多选批量转发两处都已接入,实机验证对未打开 过的好友/群转发均成功。 转发选择器(ForwardPickerModal)按好友/群聊分组显示(原来混在一个 列表里),并加了"全选/取消全选",避免多个接收方时逐条点选。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
1826d2906f
commit
46b3288880
@@ -70,11 +70,11 @@ export function RequireAuth() {
|
||||
}, [tenant, myUserId, hasToken, setMyUserId, clearTenant]);
|
||||
|
||||
// Single place that ensures the `me` topic gets subscribed once `myUserId` is known, regardless
|
||||
// of HOW it became known (session restore above, or a fresh login/register that already called
|
||||
// setMyUserId before this component ever mounted) -- LoginPage/RegisterPage used to each fire
|
||||
// their own subscribeMeTopic() with a swallowed .catch(() => {}), silently leaving a freshly
|
||||
// logged-in user with an empty conversation list and no error on a transient failure. Centralizing
|
||||
// here means it happens exactly once per authenticated mount and surfaces the same Toast either way.
|
||||
// of HOW it became known (session restore above, or a fresh login that already called
|
||||
// setMyUserId before this component ever mounted) -- LoginPage used to fire its own
|
||||
// subscribeMeTopic() with a swallowed .catch(() => {}), silently leaving a freshly logged-in user
|
||||
// with an empty conversation list and no error on a transient failure. Centralizing here means it
|
||||
// happens exactly once per authenticated mount and surfaces the same Toast either way.
|
||||
useEffect(() => {
|
||||
if (!myUserId || meSubscribedRef.current) return;
|
||||
meSubscribedRef.current = true;
|
||||
|
||||
Reference in New Issue
Block a user