Skip to content

fix: preserve wiki folder path after creation - #2429

Merged
lyingbug merged 1 commit into
Tencent:mainfrom
ttommybot:fix/preserve-wiki-folder-path
Jul 30, 2026
Merged

fix: preserve wiki folder path after creation#2429
lyingbug merged 1 commit into
Tencent:mainfrom
ttommybot:fix/preserve-wiki-folder-path

Conversation

@ttommybot

Copy link
Copy Markdown
Contributor

Description

修复 Wiki 前端新建目录后跳回根目录的问题。

问题现象

用户在 Wiki 的多级目录中创建子目录并确认后,目录树会重新初始化,导致当前路径被折叠,侧边栏不会停留在当前界面,会跳回根目录。

根因

创建目录成功后会重新加载目录树。原有刷新逻辑会清空目录的展开、折叠和用户访问状态。

虽然创建逻辑曾尝试保持父目录展开,但这个状态随后又被刷新逻辑清除。并且目录接口按层级返回直接子目录,刷新根目录后还需要逐层重新加载原来展开的深层路径。

修改内容

  • 新建目录后保留当前目录及其祖先目录的展开状态。
  • 保留侧边栏原有滚动位置,避免跳回顶部。
  • 按父目录到子目录的顺序重新加载已展开路径的数据。
  • 仅在创建目录时保留目录状态。
  • 移动、重命名和删除目录仍使用原有刷新逻辑,避免保留已经失效的路径。
  • 添加目录状态和创建目录行为的回归测试。

Type of Change

  • 🐛 Bug fix
  • ✨ New feature
  • 💥 Breaking change
  • 📚 Documentation update
  • 🎨 Refactor
  • ⚡ Performance improvement
  • 🧪 Test
  • 🔧 Configuration / Build / CI

Related Issue

N/A

Testing

在 Podman Linux、Node.js 24 环境中完成以下验证:

  • Wiki 目录回归测试:3 个测试全部通过。
  • npm run type-check:通过。
  • 完整前端测试:263 个测试全部通过。
  • npm run build:通过;构建时使用 NODE_OPTIONS=--max-old-space-size=4096
  • git diff --check:通过。

覆盖的主要场景:

  1. 新建子目录后,当前目录及祖先目录保持展开。
  2. 其他目录和其他 Wiki 类型的折叠状态不受影响。
  3. 深层目录按照父级到子级顺序重新加载。
  4. 创建目录刷新时使用保留目录状态的逻辑。

Checklist

  • make fmt && make lint && make test pass locally
  • Self-reviewed the code
  • Added/updated tests covering the change
  • Updated related documentation (README, docs/, Swagger annotations, etc.)
  • Breaking changes are clearly called out in the description above

Screenshots / Recordings

N/A — behavior-only fix; no visual layout changes.

@ttommybot
ttommybot marked this pull request as ready for review July 30, 2026 12:23
@lyingbug
lyingbug merged commit f7ef782 into Tencent:main Jul 30, 2026
2 checks passed
@ttommybot
ttommybot deleted the fix/preserve-wiki-folder-path branch August 3, 2026 07:23
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