feat(web): 优化设置页面交互与语言同步

- 二级页面返回按钮导航到设置页而非路由栈上一页
- 通用设置开关等待后端响应后再更新 UI,失败时显示 toast
- 删除用户名/邮箱的硬编码默认值,使用 auth token 邮箱作为 fallback
- AppShell 侧边栏显示真实头像和用户名
- 页面加载时检查 URL 语言与用户偏好是否一致,不一致则重定向
This commit is contained in:
ZL-Q
2026-05-09 21:32:51 +08:00
parent 1d5efb46e7
commit a1b4418d55
5 changed files with 60 additions and 25 deletions
+2 -2
View File
@@ -97,7 +97,7 @@ export default function FeedbackPage({ locale, feedback: f }: Props) {
}
setToast({ type: 'success', message: f.success });
setTimeout(() => navigate(-1), 1500);
setTimeout(() => navigate(`/${locale}/settings`), 1500);
} catch {
setToast({ type: 'error', message: f.error });
} finally {
@@ -110,7 +110,7 @@ export default function FeedbackPage({ locale, feedback: f }: Props) {
{/* Page Header */}
<div className="flex items-center gap-3">
<button
onClick={() => navigate(-1)}
onClick={() => navigate(`/${locale}/settings`)}
className="w-8 h-8 rounded-lg bg-white border border-slate-200 flex items-center justify-center hover:bg-slate-50 transition-colors"
>
<span className="material-symbols-rounded text-slate-500 text-lg">arrow_back</span>