Skip to content

fix(TreeSelect): preserve user selection order#4281

Open
RylanBot wants to merge 5 commits into
developfrom
rylan/fix/tree-select/order
Open

fix(TreeSelect): preserve user selection order#4281
RylanBot wants to merge 5 commits into
developfrom
rylan/fix/tree-select/order

Conversation

@RylanBot

@RylanBot RylanBot commented Jun 12, 2026

Copy link
Copy Markdown
Collaborator

🤔 这个 PR 的性质是?

  • 日常 bug 修复
  • 新特性提交
  • 文档改进
  • 演示代码改进
  • 组件样式/交互改进
  • CI/CD 改进
  • 重构
  • 代码风格优化
  • 测试用例
  • 分支合并
  • 其他

🔗 相关 Issue

💡 需求背景和解决方案

📝 更新日志

  • 本条 PR 不需要纳入 Changelog

tdesign-react

  • fix(TreeSelect): 多选时输入框中 Tag 的渲染由 “options 顺序” 调整为 “用户选择顺序“,之前依赖相关交互的业务注意此变更 ⚠️
  • fix(Cascader): 多选时输入框中 Tag 的渲染由 “options 顺序” 调整为 “用户选择顺序“,之前依赖相关交互的业务注意此变更 ⚠️

@tdesign-react/chat

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

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

  • 文档已补充或无须补充
  • 代码演示已提供或无须提供
  • TypeScript 定义已补充或无须补充
  • Changelog 已提供或无须提供

@tdesign-bot

tdesign-bot commented Jun 12, 2026

Copy link
Copy Markdown
Collaborator

TDesign Component Site Preview Open

Component Preview
tdesign-react 完成
@tdesign-react/chat 完成

@pkg-pr-new

pkg-pr-new Bot commented Jun 12, 2026

Copy link
Copy Markdown
  • tdesign-react-demo

    npm i https://pkg.pr.new/Tencent/tdesign-react@4281
    
    npm i https://pkg.pr.new/Tencent/tdesign-react/@tdesign-react/chat@4281
    

commit: 962c176

@RylanBot RylanBot force-pushed the rylan/fix/tree-select/order branch from 4d3d900 to 635a7d1 Compare June 15, 2026 02:52
@uyarn uyarn requested a review from Copilot June 24, 2026 16:10

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR adjusts multi-select value ordering so that selected items (and rendered Tags) follow the user’s selection sequence rather than the underlying options/tree order, affecting both TreeSelect and Cascader.

Changes:

  • Add shared preserveSelectionOrder helper to keep prior selected order and append newly selected items.
  • Update TreeSelect multi-change logic to emit values in preserved user-selection order.
  • Update Cascader selection-change logic to preserve order (including valueType='full' scenarios).

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

File Description
packages/components/tree-select/TreeSelect.tsx Uses preserveSelectionOrder when emitting multi-select changes to keep user selection order.
packages/components/tree-select/tests/vitest-tree-select.test.jsx Updates expectations to match new user-selection ordering behavior.
packages/components/cascader/core/effect.ts Integrates ordering preservation into Cascader change effects and refactors tag removal behavior.
packages/components/_util/helper.ts Adds preserveSelectionOrder utility function.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/components/cascader/core/effect.ts Outdated
Comment thread packages/components/cascader/core/effect.ts
Comment thread packages/components/cascader/core/effect.ts
@github-actions

Copy link
Copy Markdown
Contributor

Size Change: 0 B

Total Size: 87.8 kB

ℹ️ View Unchanged
Filename Size
packages/tdesign-react-aigc/es/_chunks/dep-f27c344b.js 65.1 kB
packages/tdesign-react-aigc/es/_util/reactify.js 3.89 kB
packages/tdesign-react-aigc/es/_util/useDynamicStyle.js 615 B
packages/tdesign-react-aigc/es/attachments/index.js 354 B
packages/tdesign-react-aigc/es/chat-actionbar/index.js 360 B
packages/tdesign-react-aigc/es/chat-engine/components/activity/index.js 285 B
packages/tdesign-react-aigc/es/chat-engine/components/activity/registry.js 1.01 kB
packages/tdesign-react-aigc/es/chat-engine/components/activity/render.js 1.62 kB
packages/tdesign-react-aigc/es/chat-engine/components/activity/types.js 106 B
packages/tdesign-react-aigc/es/chat-engine/components/index.js 491 B
packages/tdesign-react-aigc/es/chat-engine/components/provider/agent-state.js 558 B
packages/tdesign-react-aigc/es/chat-engine/components/toolcall/index.js 423 B
packages/tdesign-react-aigc/es/chat-engine/components/toolcall/registry.js 969 B
packages/tdesign-react-aigc/es/chat-engine/components/toolcall/render.js 2.86 kB
packages/tdesign-react-aigc/es/chat-engine/components/toolcall/types.js 208 B
packages/tdesign-react-aigc/es/chat-engine/hooks/index.js 435 B
packages/tdesign-react-aigc/es/chat-engine/hooks/useAgentActivity.js 841 B
packages/tdesign-react-aigc/es/chat-engine/hooks/useAgentState.js 1.29 kB
packages/tdesign-react-aigc/es/chat-engine/hooks/useAgentToolcall.js 851 B
packages/tdesign-react-aigc/es/chat-engine/hooks/useChat.js 933 B
packages/tdesign-react-aigc/es/chat-engine/index.js 772 B
packages/tdesign-react-aigc/es/chat-filecard/index.js 354 B
packages/tdesign-react-aigc/es/chat-loading/index.js 360 B
packages/tdesign-react-aigc/es/chat-markdown/index.js 406 B
packages/tdesign-react-aigc/es/chat-message/index.js 367 B
packages/tdesign-react-aigc/es/chat-sender/index.js 359 B
packages/tdesign-react-aigc/es/chat-thinking/index.js 387 B
packages/tdesign-react-aigc/es/chatbot/index.js 426 B
packages/tdesign-react-aigc/es/index.js 999 B
packages/tdesign-react-aigc/es/style/index.js 146 B

compressed-size-action::tdesign-react-chat

@github-actions

Copy link
Copy Markdown
Contributor

Size Change: +312 B (+0.03%)

Total Size: 920 kB

📦 View Changed
Filename Size Change
packages/tdesign-react/dist/tdesign.js 506 kB +235 B (+0.05%)
packages/tdesign-react/dist/tdesign.min.js 296 kB +77 B (+0.03%)
ℹ️ View Unchanged
Filename Size
packages/tdesign-react/dist/reset.css 1.93 kB
packages/tdesign-react/dist/tdesign.css 60.9 kB
packages/tdesign-react/dist/tdesign.min.css 55.1 kB

compressed-size-action::tdesign-react

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants