Skip to content

Conversation

@Miles-hxy
Copy link
Collaborator

@Miles-hxy Miles-hxy commented Apr 24, 2025

🤔 这个变动的性质是?

  • 新特性提交
  • 日常 bug 修复
  • 站点、文档改进
  • 演示代码改进
  • 组件样式/交互改进
  • TypeScript 定义更新
  • 包体积优化
  • 性能优化
  • 功能增强
  • 国际化改进
  • 重构
  • 代码风格优化
  • 测试用例
  • 分支合并
  • 其他改动(是关于什么的改动?)

🔗 相关 Issue

💡 需求背景和解决方案

☑️ 请求合并前的自查清单

⚠️ 请自检并全部勾选全部选项⚠️

  • 文档已补充或无须补充
  • 代码演示已提供或无须提供
  • TypeScript 定义已补充或无须补充
  • fork仓库代码是否为最新避免文件冲突
  • Files changed 没有 package.json lock 等无关文件

Summary by CodeRabbit

  • 新功能

    • 进度条组件支持更多自定义属性,包括颜色、动画模式(正向/反向)、圆角、字体大小和无障碍标签等。
    • 新增“反向动画”模式,可在进度条重置后再动画至目标进度。
    • 支持动画结束回调,提升交互体验。
    • 新增示例演示“反向动画”模式,帮助用户更好理解和使用该功能。
  • 优化

    • 进度条样式和动画控制更加灵活,显示文本和样式配置更加一致。
    • 文本显示结构简化,去除绝对定位,提升布局稳定性。
    • 默认进度文本颜色和字体大小调整,增强视觉效果。
    • 文档新增多项属性说明,提升组件使用指导。

@coderabbitai
Copy link

coderabbitai bot commented Apr 24, 2025

Caution

Review failed

The pull request is closed.

## Walkthrough

本次变更对 Progress 组件进行了增强,扩展了可用的属性,支持更多自定义选项。组件的 props 类型由原先的 TaroProgressProps 扩展为同时支持 ProgressProps,新增了如 showInfo、borderRadius、fontSize、activeColor、backgroundColor、active、activeMode、duration、ariaLabel 和 onActiveEnd 等属性。样式计算被重构为 getStyles 函数,动画和文本显示逻辑也进行了合并和优化,支持反向动画模式和可配置的动画时长,并提升了可访问性。新增了一个演示组件 Demo7,并将其集成到 ProgressDemo 页面中,同时为该演示添加了多语言支持。文档中新增了对应的新属性说明。

## Changes

| 文件/路径                             | 变更摘要                                                         |
|------------------------------------|------------------------------------------------------------------|
| src/packages/progress/progress.taro.tsx<br>src/packages/progress/progress.tsx | 增强 Progress 组件:扩展 props 类型,合并/新增属性,重构样式计算,支持反向动画,增加 ariaLabel 及动画结束回调等。 |
| src/packages/progress/demo.taro.tsx<br>src/packages/progress/demo.tsx | 在 ProgressDemo 页面新增 Demo9 组件展示,添加对应多语言翻译项,修正繁体中文翻译小错误。     |
| src/packages/progress/demos/taro/demo9.tsx<br>src/packages/progress/demos/h5/demo9.tsx | 新增 Demo7 组件,实现带正向和反向动画的进度条及增减按钮交互。       |
| src/packages/progress/doc.taro.md<br>src/packages/progress/doc.md<br>src/packages/progress/doc.en-US.md<br>src/packages/progress/doc.zh-TW.md | 文档新增 Progress 组件的 borderRadius、fontSize、activeMode、duration、ariaLabel、onActiveEnd 六个新属性说明。 |
| src/types/spec/progress/base.ts    | 扩展 BaseProgress 接口,新增 borderRadius、fontSize、activeMode、duration、ariaLabel、onActiveEnd 属性。 |
| src/types/spec/progress/taro.ts    | 扩展 TaroProgressProps 接口,新增 showInfo、activeColor、backgroundColor、active 四个属性。 |
| src/packages/progress/__tests__/progress.spec.tsx | 更新测试用例,新增对进度条宽度过渡动画样式的断言及动画结束回调测试,覆盖样式自定义和无障碍属性。 |
| src/packages/progress/progress.scss | 调整进度条文本样式,移除绝对定位及内嵌容器,改为简单左边距及字体样式设置。 |
| src/styles/variables.scss          | 修改进度条文本默认颜色和字体大小变量,颜色由主文本色改为辅助文本色,字体大小由9px调整为13px。 |
| src/packages/progress/demos/taro/demo4.tsx<br>src/packages/progress/demos/h5/demo4.tsx | Demo4 组件调整,新增一个带文本的进度条 Cell,保留原有带图片的进度条 Cell。 |

## Sequence Diagram(s)

```mermaid
sequenceDiagram
    participant User
    participant ProgressComponent
    participant DOM

    User->>ProgressComponent: 设置/更新 props(如 percent, activeMode, duration 等)
    ProgressComponent->>ProgressComponent: 计算有效属性与样式
    ProgressComponent->>DOM: 渲染进度条与文本
    ProgressComponent->>ProgressComponent: useEffect 监听 percent/activeMode 变化
    ProgressComponent->>DOM: 触发动画(正向或反向)
    DOM-->>ProgressComponent: 动画结束事件
    ProgressComponent->>User: 调用 onActiveEnd 回调(如有)

Suggested reviewers

  • oasis-cloud

Poem

小兔跳跃进度条,
新增属性真不少。
颜色动画随心换,
反向模式也闪耀。
字体圆角皆可调,
便捷无障碍,
代码更新乐逍遥! 🐇✨


<!-- walkthrough_end -->
<!-- internal state start -->


<!-- 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 -->

<!-- internal state end -->
<!-- announcements_start -->

> [!NOTE]
> <details>
> <summary>⚡️ AI Code Reviews for VS Code, Cursor, Windsurf</summary>
> 
> CodeRabbit now has a plugin for VS Code, Cursor and Windsurf. This brings AI code reviews directly in the code editor. Each commit is reviewed immediately, finding bugs before the PR is raised. Seamless context handoff to your AI code agent ensures that you can easily incorporate review feedback.
> Learn more [here](http://coderabbit.ai/ide).
> 
> </details>

---

> [!NOTE]
> <details>
> <summary>⚡️ Faster reviews with caching</summary>
> 
> CodeRabbit now supports caching for code and dependencies, helping speed up reviews. This means quicker feedback, reduced wait times, and a smoother review experience overall. Cached data is encrypted and stored securely. This feature will be automatically enabled for all accounts on May 16th. To opt out, configure `Review - Disable Cache` at either the organization or repository level. If you prefer to disable all data retention across your organization, simply turn off the `Data Retention` setting under your Organization Settings.
> Enjoy the performance boost—your workflow just got faster.
> 
> </details>

<!-- announcements_end -->

---

<details>
<summary>📜 Recent review details</summary>

**Configuration used: CodeRabbit UI**
**Review profile: CHILL**
**Plan: Pro**


<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between a0f892d2667b64240124b82fbeb049a0f2ae091f and 158adc630507115711653d133de5f11fc96beceb.

</details>

<details>
<summary>📒 Files selected for processing (1)</summary>

* `src/packages/progress/doc.taro.md` (3 hunks)

</details>

</details>
<!-- tips_start -->

---

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.

<details>
<summary>❤️ Share</summary>

- [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai)
- [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai)
- [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai)
- [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)

</details>

<details>
<summary>🪧 Tips</summary>

### Chat

There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=jdf2e/nutui-react&utm_content=3202):

- Review comments: Directly reply to a review comment made by CodeRabbit. Example:
  - `I pushed a fix in commit <commit_id>, please review it.`
  - `Explain this complex logic.`
  - `Open a follow-up GitHub issue for this discussion.`
- Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples:
  - `@coderabbitai explain this code block.`
  -	`@coderabbitai modularize this function.`
- PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
  - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.`
  - `@coderabbitai read src/utils.ts and explain its main purpose.`
  - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.`
  - `@coderabbitai help me debug CodeRabbit configuration file.`

### Support

Need help? Create a ticket on our [support page](https://www.coderabbit.ai/contact-us/support) for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

### CodeRabbit Commands (Invoked using PR comments)

- `@coderabbitai pause` to pause the reviews on a PR.
- `@coderabbitai resume` to resume the paused reviews.
- `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
- `@coderabbitai full review` to do a full review from scratch and review all the files again.
- `@coderabbitai summary` to regenerate the summary of the PR.
- `@coderabbitai generate docstrings` to [generate docstrings](https://docs.coderabbit.ai/finishing-touches/docstrings) for this PR.
- `@coderabbitai generate sequence diagram` to generate a sequence diagram of the changes in this PR.
- `@coderabbitai resolve` resolve all the CodeRabbit review comments.
- `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository.
- `@coderabbitai help` to get help.

### Other keywords and placeholders

- Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed.
- Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description.
- Add `@coderabbitai` anywhere in the PR title to generate the title automatically.

### CodeRabbit Configuration File (`.coderabbit.yaml`)

- You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository.
- Please see the [configuration documentation](https://docs.coderabbit.ai/guides/configure-coderabbit) for more information.
- If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json`

### Documentation and Community

- Visit our [Documentation](https://docs.coderabbit.ai) for detailed information on how to use CodeRabbit.
- Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback.
- Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.

</details>

<!-- tips_end -->

@github-actions github-actions bot added action:review This PR needs more reviews (less than 2 approvals) 3.x Target branch 3.x labels Apr 24, 2025
@Miles-hxy Miles-hxy changed the title feat(progress): 兼容并支持taro components的props feat(progress): 兼容并支持taro components的progressProps Apr 24, 2025
@codecov
Copy link

codecov bot commented Apr 24, 2025

Codecov Report

Attention: Patch coverage is 92.10526% with 3 lines in your changes missing coverage. Please review.

Project coverage is 86.79%. Comparing base (bc1f644) to head (158adc6).
Report is 9 commits behind head on feat_v3.x.

Files with missing lines Patch % Lines
src/packages/progress/progress.tsx 92.10% 3 Missing ⚠️
Additional details and impacted files
@@              Coverage Diff              @@
##           feat_v3.x    #3202      +/-   ##
=============================================
+ Coverage      86.54%   86.79%   +0.25%     
=============================================
  Files            289      291       +2     
  Lines          18739    19148     +409     
  Branches        2822     2906      +84     
=============================================
+ Hits           16217    16619     +402     
- Misses          2517     2524       +7     
  Partials           5        5              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🧹 Nitpick comments (2)
src/packages/progress/progress.taro.tsx (2)

56-61: 合并逻辑可读性略低,建议抽取工具函数并补充类型注释
目前针对 showText / showInfocolor / activeColor 等多对属性使用 ?? 链式合并,看起来紧凑但难以在出现 '' | 0 | false 等“假值”时第一时间判断优先级。将合并逻辑封装为独立 util(或使用 useMemo)并为每个分支补充类型说明,可提高可读性与维护性。


218-218: 避免输出空 aria-label,影响可访问性
ariaLabel 未传入时仍会渲染空属性,建议按需展开:

-      aria-label={ariaLabel}
+      {...(ariaLabel ? { 'aria-label': ariaLabel } : {})}
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4e8f3c9 and c83a5f9.

📒 Files selected for processing (1)
  • src/packages/progress/progress.taro.tsx (6 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: test

@xiaoyatong
Copy link
Collaborator

新增属性,需要添加 demo 、文档 等。

@pull-request-size pull-request-size bot added size/L and removed size/M labels Apr 28, 2025
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (1)
src/packages/progress/demo.taro.tsx (1)

30-37: zh-TW 语言部分使用了简体中文

当前 zh-TW 部分的翻译(基础用法到动态改变)使用的是简体中文,应当使用繁体中文以保持一致性。

建议将 30-37 行的文本修改为繁体中文版本:

-      basic: '基础用法',
-      customStyle: '设置颜色与宽度',
-      noShowPercentage: '显示百分比',
-      customContent: '自定义显示内容',
-      customSize: '自定义尺寸',
-      statusDisplay: '状态显示',
-      dynamicChange: '动态改变',
+      basic: '基礎用法',
+      customStyle: '設置顏色與寬度',
+      noShowPercentage: '顯示百分比',
+      customContent: '自定義顯示內容',
+      customSize: '自定義尺寸',
+      statusDisplay: '狀態顯示',
+      dynamicChange: '動態改變',
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6f69804 and 03dd7f1.

📒 Files selected for processing (3)
  • src/packages/progress/demo.taro.tsx (4 hunks)
  • src/packages/progress/demos/taro/demo9.tsx (1 hunks)
  • src/packages/progress/doc.taro.md (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • src/packages/progress/doc.taro.md
🔇 Additional comments (8)
src/packages/progress/demo.taro.tsx (5)

14-14: 引入了新的示例组件 Demo9

新组件的引入符合项目的导入规范,该组件将用于展示 Progress 组件的动画相关新特性。


27-27: 新增多语言支持项 'activeMode'

新增 'activeMode' 多语言标签用于新功能的展示,翻译内容清晰表达了该功能的用途。


38-38: 正确使用繁体中文翻译 'activeMode'

新增的 'activeMode' 多语言标签正确使用了繁体中文,保持了语言一致性。


49-49: 英文翻译清晰表达功能特点

英文翻译 "Duration And Animation Mode" 清晰表达了该功能特点,符合英文表达习惯。


78-79: 正确添加新示例到页面中

新的示例组件和标题添加位置合理,保持了与其他示例一致的布局结构。

src/packages/progress/demos/taro/demo9.tsx (3)

9-15: 使用新的 Progress 组件属性展示动画效果

代码很好地演示了 Progress 组件的新属性 activeModeduration,展示了向前和向后两种动画模式的不同效果。


18-35: 控制按钮实现合理的值范围限制

增加和减少按钮的实现包含适当的边界检查(0-100),确保进度值在有效范围内。代码简洁清晰。


1-3: 引入项已按照项目规范排序

引入项排序符合项目规范:React 相关引入在前,组件库引入在后。

@xiaoyatong
Copy link
Collaborator

两端需要对齐~~

@Miles-hxy Miles-hxy requested review from irisSong and removed request for oasis-cloud April 29, 2025 11:38
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🧹 Nitpick comments (2)
src/types/spec/progress/base.ts (1)

12-17: 增加新的接口属性很好,但可以考虑添加类型注释

这些新增属性的类型定义很棒,扩展了Progress组件的功能。建议给这些属性添加JSDoc文档注释,以便开发者更好地理解每个属性的用途和期望值。

例如:

/**
 * 边框圆角值,支持像素值或百分比
 */
borderRadius: string
src/packages/progress/demos/h5/demo9.tsx (1)

25-26: 按钮文本应使用国际化支持

按钮上的文本"减少"和"增加"是硬编码的中文,建议使用翻译机制以支持多语言。

import React, { useState } from 'react'
-import { Cell, Button, Progress } from '@nutui/nutui-react'
+import { Cell, Button, Progress } from '@nutui/nutui-react'
+import { useTranslate } from '@/sites/assets/locale'

const Demo9 = () => {
  const [value, setValue] = useState(0)
+  const [translated] = useTranslate({
+    'zh-CN': {
+      decrease: '减少',
+      increase: '增加',
+    },
+    'zh-TW': {
+      decrease: '減少',
+      increase: '增加',
+    },
+    'en-US': {
+      decrease: 'Decrease',
+      increase: 'Increase',
+    },
+  })
  
  return (
    <Cell.Group>
      {/* Progress组件部分保持不变 */}
      <Cell align="center">
        <Button
          type="default"
          style={{ marginRight: 16 }}
          onClick={() => {
            setValue(Math.max(0, value - 10))
          }}
        >
-          减少
+          {translated.decrease}
        </Button>
        <Button
          type="primary"
          onClick={() => {
            setValue(Math.min(100, value + 10))
          }}
        >
-          增加
+          {translated.increase}
        </Button>
      </Cell>
    </Cell.Group>
  )
}

Also applies to: 33-34

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 03dd7f1 and 966b3f6.

📒 Files selected for processing (8)
  • src/packages/progress/demo.taro.tsx (4 hunks)
  • src/packages/progress/demo.tsx (4 hunks)
  • src/packages/progress/demos/h5/demo9.tsx (1 hunks)
  • src/packages/progress/doc.en-US.md (1 hunks)
  • src/packages/progress/doc.md (1 hunks)
  • src/packages/progress/doc.zh-TW.md (1 hunks)
  • src/packages/progress/progress.tsx (5 hunks)
  • src/types/spec/progress/base.ts (1 hunks)
✅ Files skipped from review due to trivial changes (3)
  • src/packages/progress/doc.zh-TW.md
  • src/packages/progress/doc.md
  • src/packages/progress/doc.en-US.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/packages/progress/demo.taro.tsx
🧰 Additional context used
🧬 Code Graph Analysis (1)
src/packages/progress/demos/h5/demo9.tsx (1)
src/packages/progress/progress.tsx (1)
  • Progress (16-175)
⏰ Context from checks skipped due to timeout of 90000ms (2)
  • GitHub Check: test
  • GitHub Check: build
🔇 Additional comments (9)
src/packages/progress/demo.tsx (4)

11-11: 正确导入新的演示组件

新增Demo9组件的导入正确地扩展了组件展示范围。


24-24: 多语言支持完善

为新增功能添加了中文、繁体中文和英文的翻译,保证了国际化支持的完整性。

Also applies to: 35-35, 46-46


28-28: 修正了繁体中文翻译

将"寛度"修正为"寬度",提高了文本准确性。


69-70: 正确添加新演示组件到页面

Demo9组件被正确添加到演示页面中,并使用了相应的翻译标题,结构清晰。

src/packages/progress/demos/h5/demo9.tsx (1)

9-15: 展示了新属性的良好示例

此演示很好地展示了新增的durationactiveMode属性,通过对比展示了前向和后向动画模式的不同效果,有助于用户理解这些新特性。

src/packages/progress/progress.tsx (4)

32-37: 正确添加新的组件属性

新增的属性与BaseProgress接口的定义一致,并保持了解构赋值的整洁结构。


67-82: 动画模式实现良好

activeMode的实现很好地支持了前向和后向两种动画模式,并且添加了适当的清理函数以防止内存泄漏。


138-138: 提升了无障碍访问支持

添加aria-label属性增强了组件的可访问性,符合现代Web应用的无障碍要求。


145-147: 添加过渡结束回调

onTransitionEnd事件处理程序与onActiveEnd回调的结合为用户提供了更多控制动画完成后行为的能力。


export const Progress: FunctionComponent<
Partial<TaroProgressProps> & React.HTMLAttributes<HTMLDivElement>
Partial<TaroProgressProps & ProgressProps> &
Copy link
Collaborator

Choose a reason for hiding this comment

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

TaroProgressProps 用这个

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

♻️ Duplicate comments (1)
src/packages/progress/progress.taro.tsx (1)

209-211: 🛠️ Refactor suggestion

字体大小处理可能存在兼容性问题

当前的字体大小处理方式对于带有单位的字符串(如'16px')可能会有问题。

建议改进fontSize的处理方式,增加类型检查和更安全的解析:

-      fontSize: fontSize && pxTransform(parseInt(fontSize.toString())),
+      fontSize:
+        fontSize !== undefined
+          ? pxTransform(typeof fontSize === 'number' ? fontSize : parseInt(fontSize, 10))
+          : undefined,

这样对于各种类型的fontSize输入都能正确处理。

🧹 Nitpick comments (1)
src/packages/progress/progress.taro.tsx (1)

66-90: 样式计算函数化,提高代码复用性

将样式计算抽取为getStyles函数是个好的实践,提高了代码的可读性和维护性。但是可以进一步优化动画相关的代码。

建议仅在需要时才添加过渡动画样式,避免无谓的性能开销:

-    const transitionStyle = {
-      transition: `width ${duration || 300}ms ease-in-out`,
-    }
+    const transitionStyle =
+      effectiveAnimated || duration
+        ? { transition: `width ${duration || 300}ms ease-in-out` }
+        : {}

这样在静态进度条场景不会产生多余的CSS动画计算。

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d1df367 and 81d06a3.

📒 Files selected for processing (2)
  • src/packages/progress/progress.taro.tsx (4 hunks)
  • src/types/spec/progress/taro.ts (1 hunks)
🧰 Additional context used
🧬 Code Graph Analysis (1)
src/types/spec/progress/taro.ts (1)
src/types/spec/progress/base.ts (1)
  • BaseProgress (3-18)
⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: test
🔇 Additional comments (7)
src/types/spec/progress/taro.ts (1)

3-8: 接口扩展增强了组件属性

接口扩展了4个新属性,使Progress组件更加灵活和可配置,符合Taro组件的规范要求。新增属性与BaseProgress中已有的属性形成了良好的补充,提高了组件的可用性。

src/packages/progress/progress.taro.tsx (6)

37-47: 新增属性支持Taro组件的进度条自定义能力

增加了多个重要属性来支持Taro组件的progressProps,这些属性允许更灵活地自定义进度条的外观和行为。


55-59: 良好的属性优先级处理

通过创建effective变量处理属性优先级,逻辑清晰且考虑周全。优先使用props直接提供的值,其次使用Taro特有属性,最后使用默认值,保证了API的一致性和兼容性。


108-124: 修复动画模式和清理计时器的问题

添加了对activeMode的处理,并正确清理了setTimeout,这解决了之前可能存在的内存泄漏问题。同时也正确地添加了duration到依赖数组中。


225-226: 提升了组件的可访问性

添加aria-label属性提高了组件的可访问性,这是一个很好的改进。


232-233: 新增动画结束回调支持

添加了onTransitionEnd事件处理,支持动画结束后的回调,增强了组件的交互能力。


234-235: 使用改进的显示文本判断

使用effectiveShowText替代直接的showText判断,统一了API行为,增强了组件的一致性。

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

♻️ Duplicate comments (2)
src/packages/progress/progress.taro.tsx (2)

109-124: 定时器清理已正确实现

定时器清理的问题已按之前的审阅意见修复,包括添加 duration 依赖,确保在组件卸载或依赖变化时清理定时器。这可以有效防止内存泄漏和意外行为。


209-211: 🛠️ Refactor suggestion

字体大小处理可能导致 NaN

当前的 fontSize 处理方式可能在传入非数字格式时导致问题。

建议实现更健壮的 fontSize 处理:

- fontSize: fontSize && pxTransform(parseInt(fontSize.toString())),
+ fontSize:
+   fontSize !== undefined
+     ? pxTransform(typeof fontSize === 'number' ? fontSize : parseInt(fontSize.toString(), 10))
+     : undefined,

这样可以避免在 fontSize 为无效值时出现 NaN,并正确处理不同的输入格式。

🧹 Nitpick comments (2)
src/packages/progress/progress.taro.tsx (2)

37-47: 新增的 Taro Progress 属性扩展了组件的功能

这些新增属性使组件与 Taro 原生 Progress 组件保持了更好的兼容性,同时增强了样式和交互定制能力。

建议考虑在组件文档中详细说明这些新属性的用途和使用方法,特别是 activeModedurationonActiveEnd 这些与动画相关的属性。


66-90: 样式计算函数可进一步优化

当前的 getStyles 函数在某些情况下可能会导致不必要的性能开销。

建议按照之前审阅意见优化过渡动画样式的应用:

  const transitionStyle = {
    transition: `width ${duration || 300}ms ease-in-out`,
  }

+ const transitionStyle = 
+   effectiveAnimated || duration 
+     ? { transition: `width ${duration || 300}ms ease-in-out` } 
+     : {}

另外,borderRadius 和 fontSize 的处理也需要注意:

- borderRadius && pxTransform(parseInt(borderRadius.toString())),
+ borderRadius !== undefined
+   ? pxTransform(typeof borderRadius === 'number' 
+     ? borderRadius 
+     : parseInt(borderRadius.toString(), 10))
+   : undefined,

这样可以避免在 borderRadius 为无效值时出现 NaN。

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 81d06a3 and 00cb18a.

📒 Files selected for processing (10)
  • src/packages/progress/demos/h5/demo4.tsx (1 hunks)
  • src/packages/progress/demos/taro/demo4.tsx (1 hunks)
  • src/packages/progress/doc.en-US.md (2 hunks)
  • src/packages/progress/doc.md (2 hunks)
  • src/packages/progress/doc.taro.md (2 hunks)
  • src/packages/progress/doc.zh-TW.md (2 hunks)
  • src/packages/progress/progress.scss (2 hunks)
  • src/packages/progress/progress.taro.tsx (4 hunks)
  • src/packages/progress/progress.tsx (4 hunks)
  • src/styles/variables.scss (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (5)
  • src/packages/progress/doc.taro.md
  • src/packages/progress/doc.zh-TW.md
  • src/packages/progress/doc.en-US.md
  • src/packages/progress/doc.md
  • src/packages/progress/progress.tsx
⏰ Context from checks skipped due to timeout of 90000ms (2)
  • GitHub Check: test
  • GitHub Check: build
🔇 Additional comments (11)
src/styles/variables.scss (2)

1668-1669: 修改进度文本颜色为辅助文本颜色

将进度条文本颜色从主要文本颜色($color-primary-text)更改为辅助文本颜色($color-text-help),这样文本显示更加柔和,提高整体视觉协调性。


1675-1675: 增大进度文本字体大小

将进度条文本大小从9px增加到13px,提高了文本的可读性,特别是在移动设备上查看时更加清晰。

src/packages/progress/progress.scss (2)

8-8: 更改外部容器弹性属性

.nut-progress-outer的弹性属性从flex: auto改为flex: 1,这将使进度条在容器中更好地占据可用空间,特别是在不同宽度的容器中表现更加一致。


38-41: 简化文本样式结构

重构了文本样式,移除了绝对定位和内部包装元素,改用左边距、直接颜色和字体设置,使样式更加简洁且易于维护。新的实现也与变量文件中更新的样式设置保持一致。

src/packages/progress/demos/taro/demo4.tsx (1)

6-21: 增强示例展示不同文本样式

优化了Taro环境下的演示示例,现在展示两种不同的场景:

  1. 带有文本内容的进度条
  2. 带有图片的进度条

这种结构更清晰地展示了组件的多样性和灵活性,有助于用户理解如何定制进度条内容。

src/packages/progress/demos/h5/demo4.tsx (2)

6-21: 优化H5演示示例结构

改进了H5环境下的演示示例,使其与Taro版本保持一致,便于开发者理解组件在不同环境下的使用方式。示例现在更加全面地展示了进度条组件的文本和图片展示能力。


15-17: 注意图片属性类型

H5版本中的Image组件width和height属性使用字符串类型,而Taro版本使用数字类型。确保这是有意为之的差异,以适应不同环境的需求。

请确认H5和Taro环境下Image组件的属性类型差异是否符合各自平台的规范要求。

src/packages/progress/progress.taro.tsx (4)

55-59: 有效属性计算逻辑满足了兼容性需求

这里的实现很好地处理了新旧属性的兼容性,通过使用双问号运算符(??)创建属性优先级链。确保了在使用 Taro 原生 Progress 属性时也能正确工作。


225-225: accessibility 支持的良好实践

添加 aria-label 属性是一个很好的无障碍性改进,这使得屏幕阅读器可以为视障用户正确读出进度条信息。


232-233: 动画结束回调增强了组件交互能力

添加 onTransitionEnd 事件处理器来触发 onActiveEnd 回调是一个很好的功能增强,使得开发者可以在动画完成后执行自定义逻辑。

不过建议测试一下这个回调在不同浏览器和 Taro 环境中的兼容性,确保在所有目标平台上都能正常工作。


235-239: 文本显示逻辑优化

通过使用 effectiveShowText 变量简化了显示逻辑,代码更加清晰。这个改动使组件在使用 Taro 原生的 showInfo 属性时也能保持一致的行为。

@Miles-hxy Miles-hxy changed the title feat(progress): 兼容并支持taro components的progressProps feat(progress): 兼容并支持taro components的progressProps & v15适配 May 16, 2025
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (5)
src/packages/progress/progress.tsx (3)

53-53: 样式属性处理需优化

通过parseInt(borderRadius.toString())处理样式值可能存在问题,如果borderRadius是带单位的值(如'10px'或'50%'),parseInt会丢失单位信息。应直接使用原始值或进行更精确的处理。

-    borderRadius: borderRadius && parseInt(borderRadius.toString()),
+    borderRadius: borderRadius || undefined,

150-157: 🛠️ Refactor suggestion

文本显示逻辑优化与样式问题

文本显示逻辑被改进和简化,现在将文本放在进度条外部而不是内部。

然而,存在与之前相同的样式处理问题:

-          style={{ fontSize: fontSize && parseInt(fontSize.toString()) }}
+          style={{ fontSize: fontSize || undefined }}

这种使用parseInt处理fontSize的方式会丢失单位信息,应当进行修复。


62-63: 🛠️ Refactor suggestion

两处样式问题需要修复

  1. 同样的borderRadius处理问题出现在这里
  2. transition属性的设置是正确的,使用了duration参数并提供了默认值
-    borderRadius: borderRadius && parseInt(borderRadius.toString()),
+    borderRadius: borderRadius || undefined,
src/packages/progress/progress.taro.tsx (2)

66-90: 🛠️ Refactor suggestion

样式计算重构需要优化

将样式计算重构为getStyles函数是一个好的改进,但有几个问题需要修复:

  1. borderRadius的处理仍然使用parseInt(borderRadius.toString()),会丢失单位信息
  2. 无条件应用transition样式,即使在非动画场景下也会触发不必要的重绘
-        borderRadius:
-          borderRadius && pxTransform(parseInt(borderRadius.toString())),
+        borderRadius:
+          borderRadius ? pxTransform(Number(borderRadius)) : undefined,

-    const transitionStyle = {
-      transition: `width ${duration || 300}ms ease-in-out`,
-    }
+    const transitionStyle =
+      effectiveAnimated || duration
+        ? { transition: `width ${duration || 300}ms ease-in-out` }
+        : {}

这些修改可以提高性能和样式处理的准确性。


235-242: 🛠️ Refactor suggestion

文本显示逻辑优化与样式问题

文本显示逻辑使用了effectiveShowText变量,兼容Taro的showInfo属性和通用的showText属性。

但仍存在与Web版本相同的fontSize解析问题:

-          style={{ fontSize: fontSize && parseInt(fontSize.toString()) }}
+          style={{ fontSize: fontSize ? pxTransform(Number(fontSize)) : undefined }}

修复此问题将确保样式单位信息不会丢失。

🧹 Nitpick comments (1)
src/packages/progress/progress.taro.tsx (1)

232-233: 动画结束回调实现

与Web版本不同,这里没有使用可选链运算符调用onActiveEnd回调。虽然功能相同,但建议保持一致性:

-          onTransitionEnd={onActiveEnd}
+          onTransitionEnd={() => {
+            onActiveEnd?.()
+          }}

这样可以避免在onActiveEnd为undefined时可能出现的问题。

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 00cb18a and cbf9a72.

📒 Files selected for processing (3)
  • src/packages/progress/__tests__/progress.spec.tsx (1 hunks)
  • src/packages/progress/progress.taro.tsx (4 hunks)
  • src/packages/progress/progress.tsx (4 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/packages/progress/tests/progress.spec.tsx
🧰 Additional context used
🪛 GitHub Check: codecov/patch
src/packages/progress/progress.tsx

[warning] 71-71: src/packages/progress/progress.tsx#L71
Added line #L71 was not covered by tests


[warning] 146-147: src/packages/progress/progress.tsx#L146-L147
Added lines #L146 - L147 were not covered by tests

⏰ Context from checks skipped due to timeout of 90000ms (2)
  • GitHub Check: build
  • GitHub Check: test
🔇 Additional comments (7)
src/packages/progress/progress.tsx (3)

32-37: 新增的属性增强了组件的灵活性

这些新增的属性很好地扩展了Progress组件的功能:

  • borderRadius:允许自定义进度条圆角
  • fontSize:控制文本大小
  • activeMode:控制动画模式
  • duration:控制动画持续时间
  • ariaLabel:提高可访问性
  • onActiveEnd:提供动画结束回调

这些改进使组件更加灵活和可配置。


138-138: 提高可访问性的良好实践

添加aria-label属性提高了组件的可访问性,这是一个很好的改进。用户可以通过这个属性为进度条提供更明确的描述,帮助屏幕阅读器用户理解组件功能。


142-148:

✅ Verification successful

添加动画结束回调功能

添加onTransitionEnd事件处理器来触发onActiveEnd回调是一个很好的功能增强。用户现在可以在进度条动画完成时执行自定义逻辑。使用可选链操作符确保了回调不存在时不会出错。

注意:根据代码覆盖率分析,146-147行未被测试覆盖,建议添加相关测试用例。


🏁 Script executed:

#!/bin/bash
# 检查是否有针对onActiveEnd回调的测试

rg -A 10 "onActiveEnd" --type ts src/packages/progress/__tests__/

Length of output: 2454


无需新增测试用例:动画结束回调已覆盖

src/packages/progress/__tests__/progress.spec.tsx 中已对 onActiveEnd 回调进行了测试(使用 setTimeout 验证回调调用),因此无需额外新增测试。

🧰 Tools
🪛 GitHub Check: codecov/patch

[warning] 146-147: src/packages/progress/progress.tsx#L146-L147
Added lines #L146 - L147 were not covered by tests

src/packages/progress/progress.taro.tsx (4)

37-47: 全面支持Taro组件所需的属性

全面新增了Taro组件所需的多个属性:

  • showInfo:控制是否显示信息
  • borderRadiusfontSize:样式自定义
  • activeColorbackgroundColor:颜色自定义
  • active:替代animated的Taro命名
  • activeModeduration:动画控制
  • ariaLabel:可访问性支持
  • onActiveEnd:动画结束回调

这些属性的添加使组件与Taro规范保持一致,提高了组件在Taro环境中的可用性。


55-59: 良好的属性兼容性处理

通过创建effectiveShowTexteffectiveColoreffectiveBgColoreffectiveAnimated变量,实现了对新旧属性名的兼容支持。这种处理方式可以确保:

  1. 优先使用新的属性名(如activeColor
  2. 兼容旧的属性名(如color
  3. 最后使用默认值

这种兼容性处理方式有助于平滑过渡,减少API变更对用户的影响。


109-124: 动画模式处理与定时器清理

与Web版本类似,这里实现了动画模式并正确处理了定时器:

  1. 支持activeMode='backwards'反向动画模式
  2. 使用了duration参数并提供默认值
  3. 正确清理了定时器,避免内存泄漏
  4. 依赖数组包含所有使用的变量

这部分代码逻辑清晰,避免了可能的内存泄漏问题。


225-225: 提高可访问性的良好实践

添加aria-label属性提高了组件的可访问性,确保屏幕阅读器可以正确描述进度条功能。这种改进符合可访问性最佳实践。

Comment on lines +67 to +82
let timer: any = null
if (activeMode === 'backwards') {
setDispalyPercent(0)
timer = setTimeout(() => {
setDispalyPercent(percent)
}, duration || 300)
} else {
setDispalyPercent(percent)
}

return () => {
if (timer) {
clearTimeout(timer)
}
}
}, [percent, activeMode, duration])
Copy link

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

优化动画模式处理并正确清理定时器

动画模式的实现很好,关键点:

  1. 添加了activeMode='backwards'支持,提供反向动画效果
  2. 正确使用了duration参数并提供默认值
  3. 在组件卸载时正确清理了定时器,避免内存泄漏
  4. 依赖数组中包含了所有使用的变量

这部分代码逻辑清晰,避免了内存泄漏问题。

提示:根据代码覆盖率分析,第71行未被测试覆盖,建议添加相关测试用例。


🏁 Script executed:

#!/bin/bash
# 检查是否有针对activeMode='backwards'的测试

rg -A 10 "activeMode.*backwards" --type ts src/packages/progress/__tests__/

Length of output: 1663


🏁 Script executed:

#!/bin/bash
# 显示进度组件测试文件前200行内容以核实覆盖情况
sed -n '1,200p' src/packages/progress/__tests__/progress.spec.tsx

Length of output: 2334


优化动画模式处理并完善测试覆盖

文件:src/packages/progress/progress.tsx(L67–82)

关键点:

  • 已支持 activeMode='backwards',实现先将进度重置为 0 再过渡到目标值
  • 正确使用了 duration 参数并提供默认值
  • 在组件卸载时清理了定时器,避免内存泄漏
  • 依赖数组中包含了所有使用的变量

测试覆盖情况:

  • 已有用例验证了 transition: width 500ms ease-in-out 样式
  • 已有用例验证了动画结束时的 onActiveEnd 回调

建议:

  • 添加针对 activeMode='backwards' 时初始宽度被重置为 0% 的测试用例,以覆盖 setDisplayPercent(0) 逻辑
🧰 Tools
🪛 GitHub Check: codecov/patch

[warning] 71-71: src/packages/progress/progress.tsx#L71
Added line #L71 was not covered by tests

🤖 Prompt for AI Agents
In src/packages/progress/progress.tsx around lines 67 to 82, the code correctly
handles the 'backwards' activeMode by resetting the display percent to 0 before
transitioning to the target percent and cleans up the timer properly. However,
there is no test coverage for the case when activeMode is 'backwards' and the
initial width is reset to 0. To fix this, add a test case in
src/packages/progress/__tests__/progress.spec.tsx that renders the component
with activeMode set to 'backwards' and verifies that the initial display percent
is 0 before transitioning to the target percent, ensuring this branch is covered
by tests.

@oasis-cloud oasis-cloud merged commit 854658e into jdf2e:feat_v3.x May 17, 2025
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3.x Target branch 3.x action:review This PR needs more reviews (less than 2 approvals) size/XL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants