Toast 新增单条 closeButton prop
版本: 0.2.0 · 类型: ✨ 新功能
问题
关闭按钮是否显示此前只能由 Toaster 容器级 closeButton + 形态推断(仅 Alert / 带按钮 / aiFeedback 才显示)隐式决定,单条 toast 无法显式控制。同时 Toast.config.test.tsx 的「默认显示关闭按钮」用例用的是普通 success Message,与形态规则冲突导致测试失败。
改动文件
packages/design/src/components/Toast/toast-manager.tspackages/design/src/components/Toast/ToastItem.tsxpackages/design/src/components/Toast/Toast.tsxpackages/design/src/components/Toast/Toast.config.test.tsxpackages/design-site/docs/components/patterns/feedbacks-toast.mdx(英文)packages/design-site/i18n/zh-CN/docusaurus-plugin-content-docs/current/components/patterns/feedbacks-toast.mdx(中文)
改动内容
ToastOptions/ToastRecord新增可选closeButton?: boolean,create透传到 recordToastItem关闭按钮判定改为showClose = toast.closeButton ?? (closeButton && (isAlert || hasActions || aiFeedback)):单条 toast 显式设置时完全覆盖容器开关与形态推断(true任何形态都显示、false任何形态都隐藏),不传时回落到原容器 + 形态规则Toast.tsxJSDoc 补充closeButton用法与toast('msg', { closeButton: true })示例- 修正 config 测试:默认 / 容器隐藏用例改用 Alert 形态(带 description)真实命中形态规则;新增「普通 Message 默认无关闭按钮」「closeButton=true 强制显示」「closeButton=false 强制隐藏」三个覆盖用例
- design-site 文档(中英双语)同步:toast functions 表补充
closeButton: true/false/aiFeedback/loading/id复用等行;Toaster props 表补全真实自研 API(duration/visibleToasts/style);清理「基于 Sonner 封装 / toast.custom() / toastOptions.classNames」等历史遗留描述(组件早已迁到自研 toast manager)
备注
(Linear)
- 父 issue:DES-100 Toast
- 子 issue:DES-101 Toast: add per-toast closeButton prop