Skip to content

fix(ui): prevent duplicate elements on repeated clicks#598

Merged
Nagi-ovo merged 4 commits into
Nagi-ovo:mainfrom
jbykkk:main
Apr 13, 2026
Merged

fix(ui): prevent duplicate elements on repeated clicks#598
Nagi-ovo merged 4 commits into
Nagi-ovo:mainfrom
jbykkk:main

Conversation

@jbykkk
Copy link
Copy Markdown
Contributor

@jbykkk jbykkk commented Apr 11, 2026

Description / 描述

修复了在文件夹模块下,“导入/导出文件夹”和“创建文件夹”两个按钮多次点击后会被多次触发导致窗口多开的问题。

主要更改 (Changes Made):

  1. 引入状态锁 (State Tracking):在 FolderManager 中添加实例变量(activeFolderInput, activeImportExportMenu, activeImportDialog)来严格跟踪当前活跃的 UI 元素,实现单例行为。
  2. 优化交互体验 (UX Improvements)
    • 添加文件夹:如果输入框已存在,再次点击会聚焦现有输入框,而不是创建新的。
    • 导入/导出菜单:实现了标准的 Toggle 逻辑,打开时再次点击即可关闭。
    • 导入对话框:当模态框已激活时,静默拦截重复的触发事件。
  3. 架构与性能优化 (Architecture & Performance):移除了原先依赖于全局 MutationObserver 监听 document.body 的实现方案。将状态清理逻辑明确绑定到相关 DOM 元素的 .remove() 生命周期中(如保存、取消或点击外部区域时),从根本上避免了潜在的内存泄漏和性能衰退。

Related Issue / 相关 Issue

我已提出相关bug修复的Issue #597

Visual Proof / 可视化证据

问题图片已经在Issue中给出,这里只做在Firefox和Chrome浏览器上修复后的效果展示。
Firefox展示录屏如下:

firefox.mov

Chrome界面展示录屏如下:

chrome.mov

Browser Testing / 浏览器测试

  • Chrome / Edge (Chromium): Tested / 已测试
  • Firefox: Tested (Mandatory) / 已测试(必填)
  • Safari: Tested (Optional) or labeled as unsupported / 已测试(可选)或已标注为不支持

Checklist / 检查清单

  • I have manually verified that the feature works as intended. / 我已手动验证功能按预期工作。
  • I have confirmed that this PR does not break existing functionality. / 我已确认此 PR 不会破坏原有功能。
  • I have run bun run lint, bun run typecheck, bun run format and bun run build. / 我已运行代码校验、类型检查、格式化及构建。
  • I have added/updated necessary tests and they pass (bun run test). / 我已添加/更新了必要的测试并确保通过(bun run test)。

Open with Devin

devin-ai-integration[bot]

This comment was marked as resolved.

Copy link
Copy Markdown
Contributor Author

@jbykkk jbykkk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

感谢添加的测试用例!祝Voyager越来越好!

Copy link
Copy Markdown
Owner

@Nagi-ovo Nagi-ovo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks so much~

@Nagi-ovo Nagi-ovo merged commit bdcfdbf into Nagi-ovo:main Apr 13, 2026
1 check passed
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.

2 participants