Feedback

用户反馈收集弹窗:以 SideSheet(popup) 或 Modal(modal) 形态收集 emoji 评分 / 文本 / 单选 / 多选 / 自定义反馈。纯组合本库 SideSheet/Modal + TextArea/RadioGroup/CheckboxGroup/Button。

设计文档

如何引入

import { Feedback } from '@chenzy-design/svelte';

基本使用

通过 visible 设置是否显示。默认反馈内容是 emoji 形式,可通过 onValueChange 获取当前选择。

文字类型

设置 type 为 text 可获得多行输入框形式,可通过 textAreaProps 设置多行输入框参数。

单选反馈

设置 type 为 radio 可获得单选形式,可通过 radioGroupProps 设置单选参数。

多选反馈

设置 type 为 checkbox 可获得多选形式,可通过 checkboxGroupProps 设置多选参数。

自定义反馈内容

设置 type 为 custom,通过 children 设置内容;需自行经 okButtonProps.disabled 控制提交禁用。

模态对话框形式

通过 mode 切换反馈形式,默认 popup,设为 modal 可获得模态对话框形式。

反馈完成提示

反馈完成后,可切换展示信息提示用户本次反馈已经完成。

API 参考

Feedback

Props

属性说明类型默认值
mode展示模式:popup=SideSheet 抽屉;modal=Modal 弹窗'popup' | 'modal'popup
type反馈内容类型'text' | 'emoji' | 'radio' | 'checkbox' | 'custom'emoji
onValueChange反馈内容变化时的回调(value: string | string[] | Object) => void-
textAreaProps设置多行输入框的参数TextAreaProps-
radioGroupProps设置单选的参数(含 options)RadioGroupProps-
checkboxGroupProps设置多选的参数(含 options)CheckboxGroupProps-
renderContent自定义反馈内容展示(接收已渲染的默认内容)(content: Snippet) => Snippet-
onOk点击确定回调,返回 promise 时 resolve 后自动关闭(e) => void | Promise<any>-
onCancel取消回调,返回 promise 时 resolve 后自动关闭(e) => void | Promise<any>-
okButtonProps设置提交按钮的参数(type=custom 时可用 disabled 控制禁用)ButtonProps-
cancelButtonProps设置取消按钮的参数ButtonProps-
afterClose关闭后回调() => void-
...restmode=modal 透传 ModalProps;mode=popup 透传 SideSheetProps(含 visible/title/footer/width 等)ModalProps | SideSheetProps-

Accessibility

ARIA roledialog
键盘交互Esc
  • 外壳复用 Modal/SideSheet 的 role=dialog + focus-trap + Esc + 背景 inert
  • emoji 为裸 span + click(对齐 Semi,无 role=radio / roving tabindex),补 Enter/Space 键盘触发

设计变量

变量默认值用法
--cd-color-feedback-thank-text var(--cd-color-text-2)感谢文字的文本颜色