修复全页面走查发现的问题(第六批:交互反馈时序)
- contact-management-view: "分享给好友"走剪贴板分支时不给任何反馈,点了界面上毫无动静
(同页 QrPage.share 是有 toast 的);生成二维码失败也被 .catch(()=>{}) 静默吞掉。
三条路径都补上反馈。
- group-management-view: 添加管理员/禁言成功后 900ms 就导航,而 CenterToast 生命周期是
1400ms —— 导航会让整棵子树重挂载把 toast 一起销毁,参考图里那个「设置成功」实际只闪一下
就被截断。改成 1500ms。
回归验证(本轮全部改动)
- 41 个路由逐个访问:零 JS 错误、零 unhandled rejection、零空白页。
- 22 个页面布局扫描:无横向溢出、无文字零高度、无图标未居中。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
08bd8915c5
commit
c709abbfa4
@@ -248,15 +248,21 @@ function AddFriend({result = false, onToast, onOpenScanner}) {
|
||||
const {query, type} = classifySearchInput(text);
|
||||
searchUsers(query, type).then(data => setResults(data.items || [])).catch(() => setResults([])).finally(() => setSearching(false));
|
||||
};
|
||||
// 原来复制到剪贴板这条分支不给任何反馈,点了界面上毫无动静(同页的 QrPage.share 是有 toast 的);
|
||||
// 生成二维码失败也被 .catch(() => {}) 静默吞掉,用户同样什么都看不到。
|
||||
const shareCard = () => {
|
||||
createMyQRCode().then(data => {
|
||||
const text = `加我为好友:${data.qr_payload}`;
|
||||
if (navigator.share) {
|
||||
navigator.share({title: '添加好友', text}).catch(() => {});
|
||||
} else if (navigator.clipboard) {
|
||||
navigator.clipboard.writeText(text);
|
||||
return navigator.share({title: '添加好友', text}).catch(() => {});
|
||||
}
|
||||
}).catch(() => {});
|
||||
if (navigator.clipboard) {
|
||||
return navigator.clipboard.writeText(text).then(() => onToast('邀请链接已复制'))
|
||||
.catch(() => onToast('复制失败,请手动分享二维码'));
|
||||
}
|
||||
onToast('当前浏览器不支持分享,请使用二维码');
|
||||
return undefined;
|
||||
}).catch(err => onToast(err.message || '生成邀请链接失败'));
|
||||
};
|
||||
const actionLabel = item => item.relationship === 'friend' ? '已是好友' :
|
||||
item.relationship === 'pending_outbound' ? '已申请' : item.relationship === 'pending_inbound' ? '待通过' : '添加';
|
||||
|
||||
@@ -730,7 +730,9 @@ function MemberPicker({type, topic, onToast}) {
|
||||
failedCount = (result && Array.isArray(result.succeeded)) ? result.succeeded.filter(s => !s.ok).length : 0;
|
||||
}
|
||||
setToast(failedCount ? `成功设置 ${selected.length - failedCount} 人,${failedCount} 人设置失败` : '设置成功');
|
||||
window.setTimeout(() => navigate(back, topic), 900);
|
||||
// 导航会让整棵子树重挂载、把 toast 一起销毁。原来 900ms 就跳走,而 CenterToast 的生命
|
||||
// 周期是 1400ms —— 参考图里那个「设置成功」实际上只闪一下就被截断,而且从不在目标列表页出现。
|
||||
window.setTimeout(() => navigate(back, topic), 1500);
|
||||
}).catch(err => onToast(err.message || '设置失败')).finally(() => setBusy(false));
|
||||
};
|
||||
return <div className="group-page">
|
||||
|
||||
Reference in New Issue
Block a user