原来是「点分配 → 立刻弹浮层 → 浮层里转圈 → 数据到了重排」。 改成 shadcn 的常规做法:**加载态落在触发钮上**(钮里转圈 + 禁用), 取到数才把浮层打开,于是浮层一出现就是完整的矩阵,不会先以骨架尺寸出现再重排 —— 浮层的抖动比列表刺眼得多。 实现上 Popover 改**受控**:Radix 请求"打开"时先不开,去取数,取回来再置 open。⚠ ️ 关闭要照常放行(点外面 / 再点一次钮),否则浮层关不掉。 PoolMatrix 随之变成**纯展示组件**:数据由调用方传入,不再自取, loading / error 两段 UI 一并删掉 —— 取数失败只弹 toast **不开浮层**, 开一个空浮层比不开更让人困惑。⚠ ️ 每次点都重取,不缓存:池子随时在变(客服在处理、引擎在重算), 缓存一份旧的会让主管照着过期的数字挑格子,而他完全看不出这数是旧的。 一次 ~90ms,不值得为它引入失效逻辑。 触发钮换成 ui/button 的 <Button>(尺寸压到 h-7 贴合 tab 行): 拿到 shadcn 的 gap-2 / disabled:opacity-50 / focus ring,不再手写一套。 next build 通过,971 tests passing。(按要求未在浏览器复验) Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| ai-invocations | Loading commit data... | |
| assistant | Loading commit data... | |
| host-admin | Loading commit data... | |
| pet | Loading commit data... | |
| plan-detail | Loading commit data... | |
| plans | Loading commit data... | |
| realtime-coach | Loading commit data... | |
| recall-debug | Loading commit data... | |
| ui | Loading commit data... | |
| auth-gate.tsx | Loading commit data... | |
| can.tsx | Loading commit data... | |
| identity-cluster.tsx | Loading commit data... | |
| mock-login-dialog.tsx | Loading commit data... | |
| priority-hover.tsx | Loading commit data... | |
| session-expired.tsx | Loading commit data... |