Skip to content

fix: 修复存在子视图时图元的获取 - #7136

Merged
sersishen merged 1 commit into
masterfrom
fix/0918/viewsGetElement
Sep 18, 2025
Merged

fix: 修复存在子视图时图元的获取#7136
sersishen merged 1 commit into
masterfrom
fix/0918/viewsGetElement

Conversation

@sersishen

@sersishen sersishen commented Sep 18, 2025

Copy link
Copy Markdown
Collaborator
Checklist
  • npm test passes
  • benchmarks are included
  • commit message follows commit guidelines
  • documents are updated
Description of change

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Summary of Changes

Hello @sersishen, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

此拉取请求主要解决了一个在复杂视图结构中获取图形元素状态的缺陷。通过修改核心工具函数,现在可以递归地遍历子视图,确保所有层级的图形元素都能被正确识别和处理,从而提升了交互功能的准确性和健壮性。此外,还对测试配置进行了必要的调整,以支持相关 d3 模块的正确解析。

Highlights

  • 修复子视图图元获取: 修复了 getElementsByState 函数中的一个错误,确保在存在子视图时,能够正确地获取所有具有特定状态的图形元素。
  • Jest 配置更新: 更新了 jest.config.js 文件,为多个 d3 相关的模块(如 d3-color, d3-interpolate 等)添加了 moduleNameMapper 配置,以确保在测试环境中正确加载这些模块。
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

本次 PR 修复了在存在子视图时获取图形元素的问题,通过在 getElementsByState 函数中添加递归逻辑来正确遍历整个视图树。实现是正确的。此外,还更新了 Jest 配置以正确处理 D3 模块,这是一个常见的测试环境配置修复。

我提供了一个建议,通过使用 flatMap 来简化代码,使其更简洁并与文件中的其他部分保持风格一致。

Comment on lines +303 to +307
if (view.views && view.views.length) {
each(view.views, (subView: View) => {
rst.push(...getElementsByState(subView, stateName));
});
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

为了使代码更简洁和现代化,可以考虑使用 flatMap 来代替 eachpushflatMap 在该文件的其他地方(如 getMultiMaskedElements)也有使用,这能保持代码风格的一致性。同时,view.viewsView 类中被初始化为空数组,所以 view.views && 的检查是多余的。

  if (view.views.length) {
    rst.push(...view.views.flatMap((subView: View) => getElementsByState(subView, stateName)));
  }

@elvira1112 elvira1112 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

+1

@github-actions github-actions Bot added bugfix and removed bugfix labels Sep 18, 2025
@sersishen
sersishen merged commit 53f06fe into master Sep 18, 2025
10 of 16 checks passed
@sersishen
sersishen deleted the fix/0918/viewsGetElement branch September 18, 2025 04:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants