Files
im_webapp/umd
Your NameandClaude Sonnet 5 cdca509183 修复群邀请消息卡片丢弃"立即加入"按钮,被邀请人无法接受邀请
根因:POST /groups/{topic}/invitations 邀请成功后,后端会往邀请人与被邀请人的
单聊会话里发一条 x-im-type=system_action、template=group_invitation_created 的
消息,content.actions 里带着真实可用的 {type:"group_invitation_accept",
label:"立即加入", target_id:<invitation_id>}(对照参考图 6.3 加入群聊.png)。但
chat-message.jsx 原来对所有 system_action/system_notice 消息一律只取
content.text 渲染成纯文本,这个 action 数据被整体丢弃,消息只显示"邀请你加入群聊。"
没有任何按钮——im-api.js 里封装好的 acceptGroupInvitation() 因此从来没有调用点。

怎么修:chat-message.jsx 在原有的文本兜底之前,单独识别 content.actions 里
type=="group_invitation_accept" 的这一种模板,渲染一张带按钮的小卡片(其余
system_action/system_notice 模板的纯文本渲染保持不变,不受影响);
messages-view.jsx 新增 handleAcceptGroupInvitation,调用 acceptGroupInvitation()
并用已有的 showToast 反馈结果,逐层传给 ChatMessage 的新 onAcceptGroupInvitation
prop。按钮点击后按 busy/joined/pending_approval/error 四态展示,避免重复提交。

验证:用两个真实账号(A 建群,直接对 B 发起 POST /invitations)复现,重新构建后
B 的会话里正确出现"邀请你加入群聊。"+"立即加入"按钮;点击后正确调用
POST /group-invitations/{id}/accept 并把返回的失败原因("服务器繁忙,请稍后重试")
展示出来——这一步暴露了一个独立的后端 500 bug(accept 接口本身的实现有问题,
已记录在测试报告里,不在本次前端修复范围内),前端的请求发起、按钮状态机和错误展示
均已确认按预期工作。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-06 13:26:14 +08:00
..
2026-07-04 15:19:03 +03:00
2026-07-04 15:19:03 +03:00
2026-03-02 14:39:27 +03:00
2024-02-02 16:26:49 -08:00
2024-02-02 16:26:49 -08:00
2026-07-04 15:19:29 +03:00
2026-07-04 15:19:29 +03:00
2026-03-02 14:39:27 +03:00
2026-07-04 15:19:29 +03:00
2026-07-04 15:19:29 +03:00
2026-03-02 14:39:27 +03:00
2026-03-02 14:39:27 +03:00
2024-02-02 16:26:49 -08:00
2026-03-02 14:39:27 +03:00
2024-02-02 16:26:49 -08:00
2026-07-04 15:19:03 +03:00
2026-07-04 15:19:03 +03:00
2023-02-01 15:37:44 -08:00
2026-07-04 15:19:03 +03:00
2026-07-04 15:19:03 +03:00
2023-05-09 14:23:26 -07:00
2026-07-04 15:19:03 +03:00
2026-07-04 15:19:03 +03:00
2026-07-04 15:19:03 +03:00
2026-07-04 15:19:03 +03:00
2023-05-10 16:36:33 -07:00
2026-07-04 15:19:03 +03:00
2026-07-04 15:19:03 +03:00
2026-07-04 15:19:03 +03:00
2026-07-04 15:19:03 +03:00
2026-07-04 15:19:03 +03:00
2026-07-04 15:19:03 +03:00
2026-03-02 14:39:27 +03:00
2023-05-09 14:23:26 -07:00
2023-05-09 14:23:26 -07:00
2024-02-02 16:26:49 -08:00
2026-07-04 15:19:29 +03:00
2026-07-04 15:19:29 +03:00
2026-07-04 15:19:29 +03:00
2026-07-04 15:19:29 +03:00
2026-03-02 14:39:27 +03:00
2026-07-04 15:19:03 +03:00
2026-07-04 15:19:29 +03:00
2026-07-04 15:19:03 +03:00
2026-03-02 14:39:27 +03:00
2026-03-02 14:39:27 +03:00
2026-07-04 15:19:29 +03:00
2026-07-04 15:19:29 +03:00
2026-07-04 15:19:29 +03:00
2026-07-04 15:19:29 +03:00
2026-07-04 15:19:29 +03:00
2026-07-04 15:19:29 +03:00
2024-02-02 16:26:49 -08:00
2026-07-04 15:19:29 +03:00
2026-07-04 15:19:29 +03:00
2024-02-02 16:26:49 -08:00
2024-02-02 16:26:49 -08:00
2026-03-02 14:39:27 +03:00
2026-07-04 15:19:03 +03:00
2026-07-04 15:19:03 +03:00
2026-03-02 14:39:27 +03:00
2026-07-04 15:19:29 +03:00
2026-07-04 15:19:29 +03:00
2026-07-04 15:19:29 +03:00
2026-07-04 15:19:29 +03:00
2024-02-02 16:26:49 -08:00
2026-07-04 15:19:03 +03:00
2026-07-04 15:19:03 +03:00
2026-07-04 15:19:03 +03:00
2026-07-04 15:19:03 +03:00
2026-07-04 15:19:03 +03:00
2026-07-04 15:19:03 +03:00
2026-07-04 15:19:03 +03:00
2026-07-04 15:19:03 +03:00
2024-02-02 16:26:49 -08:00
2024-02-02 16:26:49 -08:00
2026-07-04 15:19:03 +03:00
2026-07-04 15:19:03 +03:00
2026-01-16 20:51:57 +03:00
2026-01-16 20:51:57 +03:00
2025-10-18 15:32:14 +03:00
2025-10-18 15:32:14 +03:00
2026-07-04 15:19:29 +03:00
2026-07-04 15:19:29 +03:00
2026-07-04 15:19:03 +03:00
2026-07-04 15:19:03 +03:00
2026-07-04 15:19:03 +03:00
2026-07-04 15:19:03 +03:00
2026-07-04 15:19:03 +03:00
2026-07-04 15:19:03 +03:00