 tao.chenandClaude
|
90eba221d4
|
admin: token 输入改为弹窗模式 (modal)
把 header 内嵌的 token 输入框 + Save 按钮拆掉,改用原生 <dialog>
弹窗。三种触发场景: 首访无 token 自动弹、API 401 自动弹 (清旧 token
后弹带错误信息)、用户主动点 Set Token 按钮弹。无有效 token 时阻止
Escape 关闭 (cancel 事件 preventDefault), 防止误操作丢失输入。
localStorage 键名 adminToken 不变, 零迁移成本。401 路径在 api()
内部清 token + 弹窗 + 记录 pendingRetry 闭包, 用户保存新 token 后
自动重试失败请求。
设计取舍:
- 选原生 <dialog> 而非自造 div + JS, 自带 modal/背板/焦点陷阱/a11y
- 选 <form> + preventDefault 而非 method='dialog', 避免自动关闭
- CSS 全部复用现有 dark theme 变量, 0 视觉割裂
- 0 新依赖 (纯 HTML5 + 原生 JS)
验证:
- go build / go vet / go test 全部通过
- 端到端 curl 确认新元素嵌入、旧元素删除、401/200 路径正常
- router_test.go 无回归 (HTML 改动不涉及 Go)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-13 14:08:16 +08:00 |
|