chore: 同步新增功能
Summary by CodeRabbit
发布说明
-
新功能
- Popup 组件新增
top属性,支持在标题上方显示自定义内容 - 新增字体大小和字重设计令牌,增强排版灵活性
- Popup 组件新增
-
样式优化
- Dialog 组件优化布局间距和按钮边框样式
- 多个组件完善动态模式下的显示渲染逻辑
- 调整输入框和弹出框组件的排版
-
重构
- NoticeBar 和 SwipeCell 组件内部逻辑优化
- 多个 Taro 组件生命周期升级,提升性能
- 事件处理机制改进
-
Bug 修复
- 修复复选框活动状态样式应用
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.snapis 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.
Comment @coderabbitai help to get the list of available commands and usage tips.
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.