Skip to content

fix(mermaid): 修复代码更新后的渲染状态恢复 - #78

Merged
wang-kaopu merged 4 commits into
omdsh-dev:mainfrom
wang-kaopu:fix/mermaid-render-state
Aug 28, 2026
Merged

fix(mermaid): 修复代码更新后的渲染状态恢复#78
wang-kaopu merged 4 commits into
omdsh-dev:mainfrom
wang-kaopu:fix/mermaid-render-state

Conversation

@wang-kaopu

Copy link
Copy Markdown
Collaborator

问题

MermaidNode 之前分别维护 htmlfailed 两份状态。

当一次 render 失败后再收到新的有效 code:

  • failed 可能继续残留;
  • 新 render 开始期间还可能显示上一份旧 SVG;
  • 状态组合可以进入彼此矛盾的情况。

修复

将渲染状态收敛为显式状态机:

  • loading
  • ready
  • error

code 更新时先进入 loading,成功后进入 ready,异常时进入 error,并保留 async lifecycle guard,避免旧 render 覆盖新状态。

测试

新增回归测试覆盖:

  • error code 更新为 valid code 后可以恢复;
  • 从已渲染 code 切换到新的 pending render 时,不继续显示旧 SVG。

验证

提交 PR 前已执行:

  • pnpm run check
  • 同步提交重新构建的 lib/ 产物

@wang-kaopu
wang-kaopu force-pushed the fix/mermaid-render-state branch from e885421 to a9a9656 Compare August 28, 2026 13:19
@wang-kaopu
wang-kaopu merged commit e9ace1b into omdsh-dev:main Aug 28, 2026
2 checks passed
@wang-kaopu
wang-kaopu deleted the fix/mermaid-render-state branch August 28, 2026 13:20
mrzhangkris pushed a commit to mrzhangkris/dsh-genui that referenced this pull request Sep 2, 2026
* test(mermaid): 覆盖源码更新后的状态恢复

* fix(mermaid): 重置源码更新后的渲染状态

* test(mermaid): 消除异步渲染测试竞态

* chore(build): 同步 lib 构建产物
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