Actions

AI 消息下方的一排轻量图标操作栏:不传 Items 即用内置默认(复制 / 重新生成 / 朗读 / 点赞),或自定义 ActionItem;支持激活态、禁用、加载转圈与 ShowLabel 文字标签,点击经 OnAction 回传、由宿主翻转状态(受控展示),常挂在 Bubble 的 Footer。

最后更新

说明

面向 AI 助手“消息操作栏”的一排图标按钮组件,纯展示、不依赖任何浏览器 API,Items 留空时渲染内置常用操作 Actions.Defaults(Key 固定为 copy / retry / voice / like,图标 copy / refresh / volume / thumbs-up),便于宿主按 Key 分流。每个 ActionItem 含 Key(唯一标识与回传依据)、Icon(Icon Type,不本地化)、Label(ShowLabel 为真时显示的可见文字)、Tooltip(悬停 title 与无障碍 aria-label,留空回退 Label)、Active(激活 / 选中态,如“已点赞”)、Disabled、Loading(显示旋转 loader 且不可点)与只读的 Hint(Tooltip 优先回退 Label)。ShowLabel(默认 false,纯图标)在图标右侧补文字。组件是受控展示:自身不改任何状态,点击仅经 OnAction 回传被点的 ActionItem,激活 / 加载等状态由宿主在回调里翻转(如点赞 it.Active = !it.Active、重新生成 it.Loading = true 后异步复位)。整体禁用沿用 BaseComponent 的 Disabled,禁用 / 加载项置灰、不发回调。Icon 与 Type / Size 不本地化,Label / Tooltip 走词条、内置默认提示“复制 / 重新生成 / 朗读 / 点赞”已在框架词条打底(自定义项文案按其所属程序集各自维护)。外观走 CSS 令牌接入框架明暗主题,激活态用主色描边高亮,常置于 Bubble 的 Footer 组成“复制 / 反馈 / 重生成”一排。

常见能力:

  • 不传 Items 即用内置默认操作 Actions.Defaults(copy / retry / voice / like),Key 稳定便于分流
  • 受控展示:自身不改状态,点击经 OnAction 回传被点项,激活 / 加载由宿主翻转
  • ActionItem 支持 Active 激活高亮、Disabled 禁用、Loading 转圈不可点
  • ShowLabel 切换纯图标 / 图标+文字;Label 留空回退 Tooltip
  • Tooltip 作悬停 title 与 aria-label,禁用 / 加载项不触发回调;整体禁用沿用基类 Disabled
  • 图标不本地化,Label / Tooltip 走词条,内置提示复制 / 重新生成 / 朗读 / 点赞已打底
  • 纯展示、无 JS 互操作,明暗主题随 CSS 令牌适配;常挂 Bubble 的 Footer 成消息操作栏

用法

<Bubble Placement="start" Name="助手" AvatarIcon="sparkles" Text="…回答…">
    <Footer>
        <Actions Items="@_bar" OnAction="OnBar" />
    </Footer>
</Bubble>

@* 不传 Items 即渲染内置默认(复制 / 重新生成 / 朗读 / 点赞) *@
<Actions OnAction="OnBar" />

@code {
    List<ActionItem> _bar = new()
    {
        new("copy", "copy", null, "复制"),
        new("retry", "refresh", null, "重新生成"),
        new("like", "thumbs-up", null, "点赞"),
    };
    async Task OnBar(ActionItem it)
    {
        if (it.Key == "like") it.Active = !it.Active;
        else if (it.Key == "retry") { it.Loading = true; await Regenerate(); it.Loading = false; }
        else CopyToClipboard();
    }
}

API 参数

参数 类型 默认值 说明
Items List<ActionItem> null 操作项集合。留空则渲染内置默认操作(复制 / 重新生成 / 朗读 / 点赞)。图标不本地化,标签 / 提示走词条。
OnAction EventCallback<ActionItem> — 事件 点击某个操作项的回调(禁用 / 加载 / 整体禁用时不触发)。
ShowLabel bool false 是否在图标右侧显示文字标签。默认 false(纯图标)。为真时优先取 Label,留空回退 Tooltip。
Visible bool true 取得或设置组件是否可见,默认为false。
VisibleChanged EventCallback<bool> — 事件 取得或设置组件可见性变化时的回调事件。
Class string null 取得或设置组件的CSS类名,用于自定义样式。
Disabled bool false 取得或设置组件是否禁用,默认为false。
Style string null 取得或设置组件的内联样式,用于自定义样式。

所有组件均继承 BaseComponent,除上表参数外还支持 Class、Style、Disabled、Visible。

微信公众号二维码 扫码关注公众号
QQ 交流群二维码 扫码加入 QQ 群