Conversation
+ 修复首次加载数据因 loading 空白占位符替代了 `Empty` 组件问题。 + 修复列表容器中 `children` 被重复渲染两次的问题。 + 移除 `ProListContainerInner` 上多余的 `<any>` 泛型参数。
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…ip` 包裹时出现 "Function components cannot be given refs" 警告的问题。
📝 Walkthrough概述此PR更新了多个列表和布局相关的快照测试文件,引入无障碍属性(aria-busy、aria-live)、Spin 容器包装器,并将扁平的列表项结构重构为嵌套的 header/meta/content/action 分层结构,同时更新了分页、标签和进度条等 UI 元素的渲染方式。 变更
预计代码审查工作量🎯 3 (中等) | ⏱️ ~20 分钟 可能相关的 PR
建议标签
诗歌
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary of ChangesHello @leshalv, 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! 此拉取请求主要通过更新一系列UI组件的快照来反映内部渲染机制的调整,特别是对列表组件加载状态的统一处理。这些更改确保了组件在不同场景下加载动画和样式的连贯性。 Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Changelog
Activity
Using Gemini Code AssistThe 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
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 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
|
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
tests/list/snapshot/snapshot-demos-list-editable.html (1)
39-430: 建议补充行为断言,降低快照脆弱性。这次主要是 DOM 层级与 class 结构重排,快照会对实现细节过敏,后续容易因非功能改动产生大面积噪声。建议在对应
tests/**/*.ts(x)补充用户可见行为断言,并将结构快照控制在必要范围。Based on learnings: Applies to /tests//*.{ts,tsx} : Test user behavior rather than implementation details
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@tests/list/snapshot/snapshot-demos-list-editable.html` around lines 39 - 430, The snapshot captures full DOM implementation details (class/layout) making tests brittle; update the tests under tests/**/*.ts(x) that render the editable list to assert user-visible behavior instead of full structure: add assertions that each list item shows the expected title (elements matching .ant-pro-list-row-title like "智慧零售平台"/"Ant Design"/etc.), the description (.ant-pro-list-row-description contains "我是一条测试的描述"), and that the action link text "编辑" is present and clickable; reduce or remove the large HTML snapshot and, if a snapshot is still needed, limit it to a minimal, stable piece (e.g., an item title or a serialized array of visible texts) rather than the entire ant-pro-list DOM.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@tests/list/snapshot/snapshot-demos-list-card-columns.html`:
- Around line 122-124: Multiple logo img tags are missing alt attributes which
harms accessibility; update each <img> element (e.g., the logo img shown in the
diff and the other occurrences at the listed positions) to include an
appropriate alt text for informative logos (e.g., alt="Tech UI logo") or use
alt="" if the image is purely decorative, and apply the same change to all other
similar img occurrences mentioned in the comment.
In `@tests/list/snapshot/snapshot-demos-list-config-provider.html`:
- Around line 121-128: The "发布" action is rendered as plain text while "邀请" is
an <a> link, causing lost interactivity; update the action group in the div (the
element containing the "邀请" anchor and the "发布" text) so that "发布" is rendered
as an interactive element (e.g., an <a> or <button>) with the same
styling/attributes and event handler or href as other actions, ensuring it
receives the same focus/keyboard behavior and click handler as "邀请".
---
Nitpick comments:
In `@tests/list/snapshot/snapshot-demos-list-editable.html`:
- Around line 39-430: The snapshot captures full DOM implementation details
(class/layout) making tests brittle; update the tests under tests/**/*.ts(x)
that render the editable list to assert user-visible behavior instead of full
structure: add assertions that each list item shows the expected title (elements
matching .ant-pro-list-row-title like "智慧零售平台"/"Ant Design"/etc.), the
description (.ant-pro-list-row-description contains "我是一条测试的描述"), and that the
action link text "编辑" is present and clickable; reduce or remove the large HTML
snapshot and, if a snapshot is still needed, limit it to a minimal, stable piece
(e.g., an item title or a serialized array of visible texts) rather than the
entire ant-pro-list DOM.
ℹ️ Review info
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (5)
tests/layout/__snapshots__/mobile.test.tsx.snapis excluded by!**/*.snaptests/list/__snapshots__/index.test.tsx.snapis excluded by!**/*.snaptests/table/__snapshots__/column.test.tsx.snapis excluded by!**/*.snaptests/table/__snapshots__/valueEnum.test.tsx.snapis excluded by!**/*.snaptests/table/__snapshots__/valueType.test.tsx.snapis excluded by!**/*.snap
📒 Files selected for processing (114)
tests/layout/snapshot/snapshot-demos-layout-PageContainer-token.htmltests/list/snapshot/snapshot-demos-list-basic.htmltests/list/snapshot/snapshot-demos-list-card-columns.htmltests/list/snapshot/snapshot-demos-list-card.htmltests/list/snapshot/snapshot-demos-list-columns-api.htmltests/list/snapshot/snapshot-demos-list-config-provider.htmltests/list/snapshot/snapshot-demos-list-custom-render.htmltests/list/snapshot/snapshot-demos-list-editable-columns.htmltests/list/snapshot/snapshot-demos-list-editable.htmltests/list/snapshot/snapshot-demos-list-enum-switch.htmltests/list/snapshot/snapshot-demos-list-expand.htmltests/list/snapshot/snapshot-demos-list-filter.htmltests/list/snapshot/snapshot-demos-list-grid.htmltests/list/snapshot/snapshot-demos-list-layout.htmltests/list/snapshot/snapshot-demos-list-pagination.htmltests/list/snapshot/snapshot-demos-list-search-columns.htmltests/list/snapshot/snapshot-demos-list-search.htmltests/list/snapshot/snapshot-demos-list-selection.htmltests/list/snapshot/snapshot-demos-list-shared-columns.htmltests/list/snapshot/snapshot-demos-list-size.htmltests/list/snapshot/snapshot-demos-list-special.htmltests/list/snapshot/snapshot-demos-list-toolbar.htmltests/snapshot/snapshot-demos-layout-PageContainer-token.htmltests/snapshot/snapshot-demos-list-basic.htmltests/snapshot/snapshot-demos-list-card-columns.htmltests/snapshot/snapshot-demos-list-card.htmltests/snapshot/snapshot-demos-list-columns-api.htmltests/snapshot/snapshot-demos-list-config-provider.htmltests/snapshot/snapshot-demos-list-custom-render.htmltests/snapshot/snapshot-demos-list-editable-columns.htmltests/snapshot/snapshot-demos-list-editable.htmltests/snapshot/snapshot-demos-list-enum-switch.htmltests/snapshot/snapshot-demos-list-expand.htmltests/snapshot/snapshot-demos-list-filter.htmltests/snapshot/snapshot-demos-list-grid.htmltests/snapshot/snapshot-demos-list-layout.htmltests/snapshot/snapshot-demos-list-pagination.htmltests/snapshot/snapshot-demos-list-search-columns.htmltests/snapshot/snapshot-demos-list-search.htmltests/snapshot/snapshot-demos-list-selection.htmltests/snapshot/snapshot-demos-list-shared-columns.htmltests/snapshot/snapshot-demos-list-size.htmltests/snapshot/snapshot-demos-list-special.htmltests/snapshot/snapshot-demos-list-toolbar.htmltests/snapshot/snapshot-demos-table-DragSortTable-drag-sort-table.htmltests/snapshot/snapshot-demos-table-DragSortTable-drag.htmltests/snapshot/snapshot-demos-table-ListToolBar-menu.htmltests/snapshot/snapshot-demos-table-ListToolBar-multipleLine.htmltests/snapshot/snapshot-demos-table-ListToolBar-no-title.htmltests/snapshot/snapshot-demos-table-ListToolBar-tabs.htmltests/snapshot/snapshot-demos-table-card-title.htmltests/snapshot/snapshot-demos-table-columns-setting-custom-icon.htmltests/snapshot/snapshot-demos-table-config-provider.htmltests/snapshot/snapshot-demos-table-contentWordsItem.htmltests/snapshot/snapshot-demos-table-crud.htmltests/snapshot/snapshot-demos-table-customization-value-type.htmltests/snapshot/snapshot-demos-table-dataSource.htmltests/snapshot/snapshot-demos-table-dynamic-columns-state.htmltests/snapshot/snapshot-demos-table-dynamic-settings.htmltests/snapshot/snapshot-demos-table-enum-filter-type.htmltests/snapshot/snapshot-demos-table-error-boundaries-false.htmltests/snapshot/snapshot-demos-table-intl.htmltests/snapshot/snapshot-demos-table-linkage_form.htmltests/snapshot/snapshot-demos-table-listToolBar.htmltests/snapshot/snapshot-demos-table-no-option.htmltests/snapshot/snapshot-demos-table-normal.htmltests/snapshot/snapshot-demos-table-open-rules.htmltests/snapshot/snapshot-demos-table-pollinga.htmltests/snapshot/snapshot-demos-table-renderTable.htmltests/snapshot/snapshot-demos-table-rtl_table.htmltests/snapshot/snapshot-demos-table-search.htmltests/snapshot/snapshot-demos-table-search_option.htmltests/snapshot/snapshot-demos-table-single-test.htmltests/snapshot/snapshot-demos-table-single.htmltests/snapshot/snapshot-demos-table-theme.htmltests/snapshot/snapshot-demos-table-valueType.htmltests/snapshot/snapshot-demos-table-valueTypeDate.htmltests/snapshot/snapshot-demos-table-valueTypeNumber.htmltests/snapshot/snapshot-demos-table-valueType_select.htmltests/table/snapshot/snapshot-demos-table-DragSortTable-drag-sort-table.htmltests/table/snapshot/snapshot-demos-table-DragSortTable-drag.htmltests/table/snapshot/snapshot-demos-table-ListToolBar-menu.htmltests/table/snapshot/snapshot-demos-table-ListToolBar-multipleLine.htmltests/table/snapshot/snapshot-demos-table-ListToolBar-no-title.htmltests/table/snapshot/snapshot-demos-table-ListToolBar-tabs.htmltests/table/snapshot/snapshot-demos-table-card-title.htmltests/table/snapshot/snapshot-demos-table-columns-setting-custom-icon.htmltests/table/snapshot/snapshot-demos-table-config-provider.htmltests/table/snapshot/snapshot-demos-table-contentWordsItem.htmltests/table/snapshot/snapshot-demos-table-crud.htmltests/table/snapshot/snapshot-demos-table-customization-value-type.htmltests/table/snapshot/snapshot-demos-table-dataSource.htmltests/table/snapshot/snapshot-demos-table-dynamic-columns-state.htmltests/table/snapshot/snapshot-demos-table-dynamic-settings.htmltests/table/snapshot/snapshot-demos-table-enum-filter-type.htmltests/table/snapshot/snapshot-demos-table-error-boundaries-false.htmltests/table/snapshot/snapshot-demos-table-intl.htmltests/table/snapshot/snapshot-demos-table-linkage_form.htmltests/table/snapshot/snapshot-demos-table-listToolBar.htmltests/table/snapshot/snapshot-demos-table-no-option.htmltests/table/snapshot/snapshot-demos-table-normal.htmltests/table/snapshot/snapshot-demos-table-open-rules.htmltests/table/snapshot/snapshot-demos-table-pollinga.htmltests/table/snapshot/snapshot-demos-table-renderTable.htmltests/table/snapshot/snapshot-demos-table-rtl_table.htmltests/table/snapshot/snapshot-demos-table-search.htmltests/table/snapshot/snapshot-demos-table-search_option.htmltests/table/snapshot/snapshot-demos-table-single-test.htmltests/table/snapshot/snapshot-demos-table-single.htmltests/table/snapshot/snapshot-demos-table-theme.htmltests/table/snapshot/snapshot-demos-table-valueType.htmltests/table/snapshot/snapshot-demos-table-valueTypeDate.htmltests/table/snapshot/snapshot-demos-table-valueTypeNumber.htmltests/table/snapshot/snapshot-demos-table-valueType_select.html
| <img | ||
| src="https://gw.alipayobjects.com/zos/antfincdn/upvrAjAPQX/Logo_Tech%252520UI.svg" | ||
| /> |
There was a problem hiding this comment.
多处 Logo 图片缺少 alt,建议补齐可访问性文本。
建议为信息性图片提供 alt,若仅装饰用途则显式设置 alt="",避免读屏器输出无意义内容。
🔧 示例修复(其余同类位置同步处理)
- <img
- src="https://gw.alipayobjects.com/zos/antfincdn/upvrAjAPQX/Logo_Tech%252520UI.svg"
- />
+ <img
+ alt="ProTable logo"
+ src="https://gw.alipayobjects.com/zos/antfincdn/upvrAjAPQX/Logo_Tech%252520UI.svg"
+ />Also applies to: 214-216, 306-308, 398-400, 490-492, 582-584, 674-676, 766-768
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@tests/list/snapshot/snapshot-demos-list-card-columns.html` around lines 122 -
124, Multiple logo img tags are missing alt attributes which harms
accessibility; update each <img> element (e.g., the logo img shown in the diff
and the other occurrences at the listed positions) to include an appropriate alt
text for informative logos (e.g., alt="Tech UI logo") or use alt="" if the image
is purely decorative, and apply the same change to all other similar img
occurrences mentioned in the comment.
| <div | ||
| style="display: flex; align-items: center; justify-content: flex-start; gap: 8px;" | ||
| > | ||
| <a> | ||
| 邀请 | ||
| </a> | ||
| 发布 | ||
| </div> |
There was a problem hiding this comment.
“发布” 被渲染为纯文本,操作项交互丢失。
同一操作组里 邀请 是链接,但 发布 现在是纯文本,用户无法触发该操作,属于可见功能退化。
🔧 建议修复
- 发布
+ <a>
+ 发布
+ </a>🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@tests/list/snapshot/snapshot-demos-list-config-provider.html` around lines
121 - 128, The "发布" action is rendered as plain text while "邀请" is an <a> link,
causing lost interactivity; update the action group in the div (the element
containing the "邀请" anchor and the "发布" text) so that "发布" is rendered as an
interactive element (e.g., an <a> or <button>) with the same styling/attributes
and event handler or href as other actions, ensuring it receives the same
focus/keyboard behavior and click handler as "邀请".
Summary by CodeRabbit
发布说明
新功能
改进
Bug 修复