fix(web): 第9轮审查批次2——群聊域一批问题
- 建群留空群名字直接被后端拒绝:placeholder写的"未填写时默认为成员 昵称组合"从未真正实现,现在留空时用已选成员昵称拼接生成默认名, 按MAX_TITLE_LENGTH截断 - 群文件上传按钮不受"群文件上传权限"治理开关约束:新增canUpload (和canInvite同一个算法),仅管理员时非管理员看不到上传入口 - 群管理弹层5个治理开关(进群验证/全员禁言/文件上传/私聊权限/邀请 权限)都没有读取后端返回的对应_editable字段,现在全部接上 - 禁言成员列表只拉第一页:新增getAllGroupMutes复用fetchAllPages, 和getAllGroupMembers同一个模式,人数多的群不会再静默截断 - 添加管理员没有前端数量上限校验:达到上限时按钮禁用并提示"已达 管理员人数上限",不再让用户选完人才被后端拒绝 - 清空聊天记录没有错误处理,失败时静默无提示,现在补上 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
ab96ae1fee
commit
8f4b0de636
@@ -119,6 +119,11 @@ export function GroupDetailColumn({ topicId, peerName, onClose, onOpenHistory }:
|
||||
// (no extra request needed) -- live-verified this reflects the real value (flipped it via
|
||||
// GroupAdminModal's own PATCH, re-fetched `/settings`, confirmed it changed), not a frozen default.
|
||||
const canInvite = isAdmin || settingsQuery.data?.governance?.member_invite === true;
|
||||
// Same gap as `canInvite` right above (same governance toggle pattern, same root cause: the
|
||||
// "群文件上传权限" toggle in GroupAdminModal writes `member_upload_files` but nothing ever read it
|
||||
// back) -- `GroupFilesModal`'s upload button was unconditionally visible/clickable regardless of
|
||||
// this setting.
|
||||
const canUpload = isAdmin || settingsQuery.data?.governance?.member_upload_files === true;
|
||||
|
||||
// No `version` in the request -- see updateGroupMemberSettings's own doc comment for why sending
|
||||
// one 400s every single call (this was the actual root cause of "member-settings always 400",
|
||||
@@ -159,7 +164,11 @@ export function GroupDetailColumn({ topicId, peerName, onClose, onOpenHistory }:
|
||||
|
||||
const clearHistory = async () => {
|
||||
if (!(await requestConfirm({ message: '确定清空本群的聊天记录吗?此操作仅清除本地记录,不影响其他成员。', danger: true }))) return;
|
||||
tinode.getTopic(topicId).delMessagesAll(false);
|
||||
try {
|
||||
await tinode.getTopic(topicId).delMessagesAll(false);
|
||||
} catch (err) {
|
||||
showError(err, '清空聊天记录失败,请重试');
|
||||
}
|
||||
};
|
||||
|
||||
const reportAbuse = () => {
|
||||
@@ -411,7 +420,7 @@ export function GroupDetailColumn({ topicId, peerName, onClose, onOpenHistory }:
|
||||
{openModal === 'announcement' ? (
|
||||
<GroupAnnouncementModal topicId={topicId} canEdit={isAdmin} onClose={() => setOpenModal(null)} />
|
||||
) : null}
|
||||
{openModal === 'files' ? <GroupFilesModal topicId={topicId} isAdmin={isAdmin} onClose={() => setOpenModal(null)} /> : null}
|
||||
{openModal === 'files' ? <GroupFilesModal topicId={topicId} isAdmin={isAdmin} canUpload={canUpload} onClose={() => setOpenModal(null)} /> : null}
|
||||
{openModal === 'admin' ? <GroupAdminModal topicId={topicId} onClose={() => setOpenModal(null)} /> : null}
|
||||
{openModal === 'qrcode' ? <QRCodeModal groupTopic={topicId} onClose={() => setOpenModal(null)} /> : null}
|
||||
</aside>
|
||||
|
||||
Reference in New Issue
Block a user