Skip to content

fix: 修复设置拖拽动画、代码质量与 TypeScript 严格模式问题#14

Merged
Sallyn0225 merged 7 commits into
mainfrom
fix/settings-drag-and-folder-sort
Mar 3, 2026
Merged

fix: 修复设置拖拽动画、代码质量与 TypeScript 严格模式问题#14
Sallyn0225 merged 7 commits into
mainfrom
fix/settings-drag-and-folder-sort

Conversation

@Sallyn0225

@Sallyn0225 Sallyn0225 commented Mar 3, 2026

Copy link
Copy Markdown
Owner

Summary

  • 修复设置页面拖拽动画缺失及文件夹排序不同步到侧栏的问题(Reorder.Item 动画 + onFeedsReordered 回调)
  • 修复 4 个文件共 31 个 TypeScript 严格模式类型错误
  • 修复添加订阅源分类下拉按钮显示多余文字的问题
  • 新增 ESLint + TypeScript 类型检查 CI workflow,修复全部 96 个 ESLint warnings 实现零警告
  • 更新文档以反映 PR feat: 支持多 API 格式 (OpenAI Responses + Anthropic Messages) #13 新增的 4 种 AI API 格式支持

Changes

Bug Fixes

  • 设置页面拖拽: 为 Reorder.Item 添加 layout/transition/whileDrag 属性,使拖拽有缩放+阴影反馈,换位有平滑弹簧动画;新增 onFeedsReordered 回调确保关闭设置弹窗时 flush 排序请求并刷新侧栏
  • TypeScript 类型错误: 修复 ArticleCard、geminiService、rssService、readabilityService 中的严格模式类型问题
  • 订阅源分类下拉: 移除 SelectTrigger 内多余的 SelectValue,避免文字截断
  • ESLint warnings: 删除未使用导入/变量,替换 anyunknown,补全 React Hooks 依赖项

CI/CD

  • 新增 .github/workflows/ci.yml:PR 和 push to main 时运行 ESLint、tsc 类型检查和构建验证
  • 新增 eslint.config.js(flat config)及相关依赖
  • deploy-cloudflare.yml 添加 npm 缓存

Docs

  • 更新 README 和 help.md 反映 4 种 AI API 格式支持

Test plan

  • 打开设置页面,拖拽订阅源/文件夹验证动画效果和排序同步
  • 添加订阅源时验证分类下拉不显示多余文字
  • npm run build 零错误零警告
  • CI workflow 通过 ESLint + TypeScript 检查

1. 为所有 Reorder.Item 添加 layout/transition/whileDrag 属性,
   使拖拽时有缩放+阴影反馈,其他项换位有平滑弹簧动画
2. 新增 onFeedsReordered 回调,关闭设置弹窗时自动 flush 防抖中的
   排序请求并触发 initFeeds 刷新侧栏文件夹顺序
- ArticleCard: 移除对 thumbnail.original 的访问(thumbnail 类型为 string)
- geminiService: 为所有 response.json() 添加类型断言
- rssService: 同上,为 API 响应添加类型断言
- readabilityService: 用 insertBefore 替换 prepend 避免 CF Workers 类型冲突
移除 SelectTrigger 内的 SelectValue,避免选中分类后文字同时
出现在输入框和下拉按钮上导致截断显示不全。
- 新增 .github/workflows/ci.yml,在 PR 和 push to main 时运行 ESLint、tsc 类型检查和构建验证
- 新增 eslint.config.js(flat config),配置 TypeScript、React Hooks、React Refresh 规则
- package.json 添加 lint、lint:fix、typecheck 脚本及 ESLint 相关依赖
- deploy-cloudflare.yml 添加 npm 缓存加速构建
- 删除未使用的导入和变量(Dialog、AISettings、Language、Filter、FolderOpen 等)
- 将 catch 块中的 `any` 类型替换为 `unknown` 并添加 instanceof 类型收窄
- 为 Drizzle ORM 操作添加正确的类型断言替代 `as any`
- 为 API 响应 JSON 添加具体的类型定义
- 补全 React Hooks 缺失的依赖项
- 移除未使用的 loadEnv 和死代码(showHelp/helpContent state、FEED_CACHE_TTL)
package-lock.json 在 Windows 上生成,不包含 Linux 平台的
@rollup/rollup-linux-x64-gnu optional dependency,导致 npm ci
严格安装后 vite build 找不到该模块。

与 deploy-cloudflare.yml 保持一致,使用 rm package-lock.json &&
npm install 让 npm 在 Linux CI 环境下重新解析 optional deps。
@Sallyn0225 Sallyn0225 merged commit 36d0fa4 into main Mar 3, 2026
2 checks passed
@Sallyn0225 Sallyn0225 deleted the fix/settings-drag-and-folder-sort branch March 3, 2026 17:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant