Skip to content

v0.31.0 · tools-ui 1.4.1

Choose a tag to compare

@willove willove released this 27 Sep 09:09
· 23 commits to main since this release

本 tag 发 @wil-works/evoke-tools-ui 1.4.1(patch:缺陷修复;其余四包版本未变,矩阵自动跳过)。

修的死订阅

--ot-* 的语义权威在办公产品侧(画布色由产品 CSS 定义),这类消费方只想拿主题变化信号、不希望框架覆写自己的令牌——本该用 EtThemeBridge / observeThemeChanges 传 palette = {} 实现,实际收不到任何通知:

  • 去重签名只由解析结果的值拼成,而 last 初值是空串 → 空登记表签名恒为 '' → signature === last 永远成立 → 连挂载首值都不发。
  • 修法:签名改为 class | data-theme | data-density | 解析结果值,last 初值 null(挂载必发一次)。签名刻意不含 style:本件写回的行内 --ot-* 只改 style 属性,含它就自激循环。
  • 行为变化是加法式的(消费者只会多收不会少收):纯切档(色值不变、只有 data-density/class 变)现在重发一次并重写同值。1.4.0 的 @change JSDoc 承诺「挂载即发首值」,到本版才在所有登记表形态下为真。

测试

  • theme-palette.test.js 原「订阅」用例自记"简化:不真驱动 mutation" → 改成真驱动 MutationObserver 回调逐拍断言;新增 palette = {} 只订阅用例;两条编码旧契约的用例按新契约更新。
  • 变异对照:退回旧实现 → 4 条红;还原 → 全绿。
  • 修一处测试卫生:断言失败未 unmount 会把观察器泄漏到下一个用例(表现为"下一条莫名变红"),已 try/finally 收口。

验证

单测 476 例全绿;build:tools 十道门全绿;docs-tools:build(含 G11)绿;tools + docs-tools 两套 playwright 72 例全过(无基线含首页徽标,改版本号不需重录);pre-release-check 通过。

下游

office-works 已升 ^1.4.0 并把底带表页签换成 EtSheetTabs(其全仓 950 例 + e2e 18/18 双引擎通过);主题联动换 <et-theme-bridge :palette="{}" @change> 待本版本被其消费。