Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

perf(view): ⚡ 优化win的托盘闪烁和消息提示 #142

Merged
merged 1 commit into from
Jan 4, 2025

Conversation

nongyehong
Copy link
Member

@nongyehong nongyehong commented Jan 4, 2025

💻 变更类型 | Change Type

  • ✨ feat | 新增功能
  • 🐛 fix | 修复缺陷
  • ♻️ refactor | 代码重构(不包括 bug 修复、功能新增)
  • 💄 style | 代码格式(不影响功能,例如空格、分号等格式修正)
  • 📦️ build | 构建流程、外部依赖变更(如升级 npm 包、修改 vite 配置等)
  • 🚀 perf | 性能优化
  • 📝 docs | 文档变更
  • 🧪 test | 添加疏漏测试或已有测试改动
  • ⚙️ ci | 修改 CI 配置、脚本
  • ↩️ revert | 回滚 commit
  • 🛠️ chore | 对构建过程或辅助工具和库的更改(不影响源文件、测试用例)

🔀 变更说明 | Description of Change

📝 补充信息 | Additional Information

@github-actions github-actions bot added 前端 关于前端的代码修改 Rust 基于rust代码的修改 labels Jan 4, 2025
Copy link

codecov bot commented Jan 4, 2025

Codecov Report

Attention: Patch coverage is 3.12500% with 31 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/views/Notify.vue 0.00% 20 Missing ⚠️
src/layout/index.vue 0.00% 5 Missing ⚠️
src/components/rightBox/Details.vue 0.00% 4 Missing ⚠️
src/hooks/useCommon.ts 33.33% 2 Missing ⚠️
Files with missing lines Coverage Δ
src/services/webSocket.ts 0.00% <ø> (ø)
src/views/Tray.vue 0.00% <ø> (ø)
src/hooks/useCommon.ts 10.55% <33.33%> (ø)
src/components/rightBox/Details.vue 0.00% <0.00%> (ø)
src/layout/index.vue 0.00% <0.00%> (ø)
src/views/Notify.vue 0.00% <0.00%> (ø)

Copy link

github-actions bot commented Jan 4, 2025

PR 代码分析

### 代码变更分析

1. 代码逻辑的改动

  • Details.vue:

    • 修改了 n-image 组件的样式属性,将宽度、高度和边框样式从类中移到了组件属性中。这使得样式更加直观,但需要注意是否会影响其他地方使用该类名的地方。
  • useCommon.ts:

    • openMsgSession 函数改为异步函数,并增加了获取当前窗口实例的逻辑。新增了对窗口标签的检查,确保只有在 home 窗口时才进行页面跳转。
  • index.vue:

    • 在消息接收事件处理中增加了日志输出和事件发射,用于通知托盘和显示提示信息。这增强了系统的响应性和用户交互体验。
  • webSocket.ts:

    • 移除了重复的日志输出和事件发射逻辑,将其移到了 index.vue 中,避免了重复代码。
  • Notify.vue:

    • 重构了通知组件的结构,增加了滚动条支持,动态渲染消息列表,并添加了对消息分组和排序的功能。同时,优化了点击消息的处理逻辑,确保打开对应的消息会话。
  • Tray.vue:

    • 增加了对窗口焦点变化的监听,优化了状态栏图标闪烁的逻辑,确保仅在未聚焦状态下闪烁。此外,移除了不必要的窗口大小调整逻辑。

2. 潜在的问题或优化空间

  • Details.vue:

    • 需要确认新的样式属性是否会影响到其他地方使用相同类名的元素,建议进行全面的样式审查。
  • useCommon.ts:

    • 新增的 WebviewWindow.getCurrent().label 可能会抛出异常,建议增加错误处理机制。
  • index.vue:

    • 日志输出和事件发射的频率较高,可能会对性能产生影响,建议根据实际需求进行优化。
  • Notify.vue:

    • 动态渲染消息列表时,需要确保数据更新的及时性,避免出现数据不同步的情况。此外,消息分组和排序的逻辑较为复杂,建议进行单元测试。
  • Tray.vue:

    • 焦点变化的监听逻辑较为复杂,建议增加注释说明每个步骤的作用。此外,可以考虑将部分逻辑提取到独立的函数中,提高代码可读性。

3. TypeScript 类型定义的准确性

  • Notify.vue:
    • 新增了 GroupedMessage 类型定义,确保了消息分组的数据结构清晰明确,提升了代码的可维护性。

4. Vue 组件的性能影响

  • Notify.vue:

    • 引入了 n-scrollbar 组件,虽然增强了用户体验,但也可能增加渲染开销。建议根据实际使用情况评估其性能影响。
  • Tray.vue:

    • 监听窗口焦点变化的逻辑可能会频繁触发,建议优化事件处理逻辑,减少不必要的计算。

5. Rust 代码的安全性和性能

  • useCommon.ts 和 Tray.vue:
    • 使用了 Tauri 提供的 API 进行窗口管理和事件处理,这些 API 本身是安全的,但仍需注意异步操作中的错误处理和资源释放。

总结:此次代码变更为系统增加了更多功能和优化,但在实现过程中需要注意潜在的性能问题和类型安全性,建议进行全面的测试和代码审查。

*这是由通义千问 AI 自动生成的 PR 分析,仅供参考。*

@nongyehong nongyehong merged commit 4e49700 into master Jan 4, 2025
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Rust 基于rust代码的修改 前端 关于前端的代码修改
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant