Commit Graph

6 Commits

Author SHA1 Message Date
ea46ad71bf feat: 集成 Tailwind CSS v4,替换手写样式为 utility classes 2026-03-02 06:18:20 +08:00
aaea414d5a fix: 修复 Chrome 上录音按钮被 pointerleave 过早中断的问题
- 在 pointerdown 时调用 setPointerCapture 锁定指针事件
- 在 pointerup 时释放 pointer capture
- 防止 async startRecording 期间 pointerleave 意外触发 stopRecording
- mic-wrapper 添加 touch-action: none 防止浏览器拦截触摸
2026-03-02 05:43:23 +08:00
6c1b8e95c8 feat: 历史列表添加交错滑入动画
- renderHistory 改为索引循环,设置 CSS 变量 --i 实现交错延迟
- 最大交错层级限制为 10(400ms),避免过长等待
2026-03-02 05:23:47 +08:00
b87fead2fd refactor: 优化代码质量,遵循 KISS 原则
- 移除自签证书回退逻辑,简化为仅使用 AnyIP 证书
- 删除 internal/tls/generate.go(不再需要)
- 重构 main.go:提取初始化逻辑,main() 从 156 行降至 13 行
- 重构 internal/ws/handler.go:提取消息处理,handleConn() 从 131 行降至 25 行
- 重构 internal/config/load.go:使用 map 驱动消除重复代码
- 优化前端 startRecording():使用标准 AbortController API
- 优化前端 showToast():预定义 DOM 元素,代码减少 50%

代码行数减少 90 行,复杂度显著降低,所有构建通过
2026-03-02 00:25:14 +08:00
ce1ff2d04d fix: 用 Pointer Events 替代 touch+mouse 事件,修复移动端双触发导致按钮卡死
- pointerdown/pointerup/pointerleave/pointercancel 统一处理所有输入
- 移除分离的 touchstart/touchend/mousedown/mouseup 事件绑定
- WS 断连时清理 pendingStart 状态,防止按钮永久卡死
- 添加 contextmenu 阻止长按弹出菜单
2026-03-01 05:49:07 +08:00
d0be096165 feat: 前端迁移至 TypeScript,集成 Biome 格式化与代码检查
- app.js → app.ts:添加完整类型标注、接口定义
- audio-processor.js → audio-processor.ts:AudioWorklet 类型化
- vite.config.js → vite.config.ts
- 添加 tsconfig.json、vite-env.d.ts
- 集成 Biome 默认配置(lint + format),通过全部检查
- package.json 添加 check/typecheck 脚本
- index.html 修复无障碍问题(button type、SVG title)
2026-03-01 05:40:26 +08:00