nutui-react icon indicating copy to clipboard operation
nutui-react copied to clipboard

chore: 同步新增功能

Open oasis-cloud opened this issue 2 months ago • 2 comments

Summary by CodeRabbit

发布说明

  • 新功能

    • Popup 组件新增 top 属性,支持在标题上方显示自定义内容
    • 新增字体大小和字重设计令牌,增强排版灵活性
  • 样式优化

    • Dialog 组件优化布局间距和按钮边框样式
    • 多个组件完善动态模式下的显示渲染逻辑
    • 调整输入框和弹出框组件的排版
  • 重构

    • NoticeBar 和 SwipeCell 组件内部逻辑优化
    • 多个 Taro 组件生命周期升级,提升性能
    • 事件处理机制改进
  • Bug 修复

    • 修复复选框活动状态样式应用

oasis-cloud avatar Oct 20 '25 03:10 oasis-cloud

Walkthrough

此PR包含事件系统重构(Events转eventCenter)、Popup组件新增top支持、Dialog样式更新、Taro组件生命周期优化(useLayoutEffect→useReady)、50余个组件的样式dynamic条件编译添加,以及主题系统扩展。

Changes

分组 / 文件 变更摘要
Taro事件系统重构
src/hooks/taro/use-custom-event.ts
将customEvents从new Events()改为eventCenter,改变事件注册源
Popup组件top支持
src/packages/popup/popup.tsx, src/packages/popup/popup.scss, src/types/spec/popup/base.ts, src/packages/popup/doc*.md, src/sites/sites-react/doc/docs/*/migrate-from-v2*.md
新增top prop用于在标题上方渲染自定义内容,含类型、样式、文档更新
Dialog样式与主题变量更新
src/packages/dialog/dialog.scss, src/packages/dialog/demos/taro/demo6.tsx, src/packages/configprovider/types.ts
调整dialog header/footer样式,添加字体权重和margin变量
样式主题系统扩展
src/styles/theme-default.scss, src/styles/variables.scss, src/styles/variables-jmapp.scss, src/styles/variables-jrkf.scss
新增font-size-icon、font-weight-medium变量,更新部分尺寸默认值
组件样式dynamic条件编译
src/packages/{animatingnumbers,badge,button,cascader,checkbox,checkboxgroup,divider,drag,elevator,inputnumber,loading,menuitem,noticebar,notify,radio,rate,resultpage,searchbar,segmented,signature,skeleton,steps,switch,tabpane,tabs,tag,timeselect,toast,virtuallist}/\*.scss
为display属性添加#ifndef/#ifdef dynamic条件块,在dynamic模式下从inline-flex切换到flex
Taro组件生命周期优化
src/packages/avatarcropper/avatarcropper.taro.tsx, src/packages/lottiemp/lottiemp.taro.tsx, src/packages/range/range.taro.tsx, src/packages/rate/rate.taro.tsx, src/packages/swipe/swipe.taro.tsx
用useReady替换useLayoutEffect,采用Taro生命周期而非React effect依赖
Checkbox活跃状态样式
src/packages/checkbox/checkbox.tsx, src/packages/checkbox/checkbox.taro.tsx
当innerChecked为true时添加${classPrefix}-active类名
NoticeBar大幅重构
src/packages/noticebar/noticebar.taro.tsx, src/packages/noticebar/demos/taro/demo10.tsx
引入useUuid、nextTick,新增renderLeftIcon/renderRight/renderRightIcon辅助函数,采用ID基础的rect查询,优化竖直滚动初始化
其他组件调整
src/packages/input/input.scss, src/packages/input/input.taro.tsx, src/packages/toast/toast.taro.tsx, src/utils/taro/get-rect-by-id.ts, src/utils/taro/env-type.ts
移除input line-height、调整disabled逻辑、toast平台适配、新增ENV_TYPE工具模块

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~75 minutes

变更涉及50+文件,包括结构化重构(NoticeBar、Swipe)、重复模式化修改(dynamic条件编译)和多类型编辑(样式、类型、Taro生命周期)。大量同构的条件编译块降低单项复杂度,但NoticeBar和Swipe的业务逻辑重构需要深度审查。

Possibly related PRs

  • #3364: 同样修改src/hooks/taro/use-custom-event.ts,将Events替换为eventCenter,涉及重叠的Taro相关变更
  • #3297: 修改多个Taro组件的生命周期钩子(range、avatarcropper、lottie、rate、swipe),用useReady替换useLayoutEffect
  • #3251: 修改NoticeBar的竖直模式初始化、测量和刷新逻辑(refs、ID和rect测量、生命周期钩子)

Suggested reviewers

  • xiaoyatong
  • Alex-huxiyang

Poem

🐰 样式加编译,dynamic来切换, 事件投eventCenter,Taro生命周期优化长, Popup顶部现新意,NoticeBar焕然新装, 主题变量齐出阵,NutUI如春风拂岸!

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Description Check ⚠️ Warning PR描述完全为空。根据仓库的PR模板要求,应包含变动性质选择、相关Issue链接、需求背景解决方案、以及自查清单等多个必要部分。完全缺失描述信息意味着审阅者无法快速了解该PR的目的、影响范围和作者的自检情况,这对代码评审和合并决策造成了严重的信息缺失。 请根据仓库提供的PR模板补充完整的描述信息。至少应包括:(1) 勾选变动性质(如"功能增强"、"组件样式/交互改进"等);(2) 说明需求背景和解决方案;(3) 完成自查清单中的所有项目。这样可以帮助维护者快速评估PR的质量和影响范围。
Title Check ❓ Inconclusive PR标题"chore: 同步新增功能"过于宽泛和模糊,未能具体说明变动集中的主要改动。虽然这个标题不是完全离题,但从变动涉及多个组件的SCSS条件编译更新、TypeScript类型定义扩展、组件API增强(如Popup新增top属性)、工具函数重构等多个方面来看,"新增功能"这个描述不够具体。扫描PR历史的开发者无法从这个标题快速理解核心变动内容。 建议将标题改为更加具体和清晰的表述,例如区分出主要的变动点。可以考虑如"chore: 新增动态编译条件和主题变量"或"chore: 更新多个组件样式和功能"等,这样能让维护者和代码评审者快速理解PR的主要内容。
✅ Passed checks (1 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
  • [ ] 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • [ ] Create PR with unit tests
  • [ ] Post copyable unit tests in a comment
  • [ ] Commit unit tests in branch chore_v3.x

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5d77957db581148037a837da2bd553a5fa502324 and 39f28a1118057f3f129e25346398194d8e3078bf.

⛔ Files ignored due to path filters (1)
  • src/packages/checkbox/__test__/__snapshots__/checkbox.spec.tsx.snap is excluded by !**/*.snap
📒 Files selected for processing (4)
  • src/packages/input/input.taro.tsx (2 hunks)
  • src/packages/popup/popup.tsx (5 hunks)
  • src/utils/taro/env-type.ts (1 hunks)
  • src/utils/taro/get-rect-by-id.ts (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • src/utils/taro/env-type.ts
🚧 Files skipped from review as they are similar to previous changes (2)
  • src/packages/input/input.taro.tsx
  • src/packages/popup/popup.tsx
🧰 Additional context used
🧬 Code graph analysis (1)
src/utils/taro/get-rect-by-id.ts (1)
src/utils/taro/env-type.ts (1)
  • ENV_TYPE (1-12)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: build
  • GitHub Check: test
🔇 Additional comments (1)
src/utils/taro/get-rect-by-id.ts (1)

2-2: 重构已验证无误,可以合并。

验证结果确认:

  • ENV_TYPE.WEB 的值为 'WEB',与 Taro.ENV_TYPE.WEB 完全等价
  • ✓ 代码库中已无 Taro.ENV_TYPE 的残留引用,重构完整
  • ✓ 其他文件(如 input.taro.tsx)也正确使用了提取的 ENV_TYPE 常量,验证了一致性

此改动成功将环境类型常量提炼到公共位置,解决了之前的审查建议,无任何破坏性变更。


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

coderabbitai[bot] avatar Oct 20 '25 03:10 coderabbitai[bot]

Codecov Report

:x: Patch coverage is 62.50000% with 6 lines in your changes missing coverage. Please review. :white_check_mark: Project coverage is 88.13%. Comparing base (e9a80b8) to head (374b7ae).

Files with missing lines Patch % Lines
src/packages/popup/popup.tsx 60.00% 6 Missing :warning:

:x: Your patch check has failed because the patch coverage (62.50%) is below the target coverage (80.00%). You can increase the patch coverage or adjust the target coverage.

Additional details and impacted files
@@              Coverage Diff              @@
##           feat_v3.x    #3374      +/-   ##
=============================================
- Coverage      88.15%   88.13%   -0.03%     
=============================================
  Files            291      291              
  Lines          19212    19228      +16     
  Branches        2988     2992       +4     
=============================================
+ Hits           16937    16947      +10     
- Misses          2269     2275       +6     
  Partials           6        6              

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

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

codecov[bot] avatar Oct 20 '25 05:10 codecov[bot]