Command

Command 是带搜索框的命令面板:输入即时过滤条目,方向键移动光标,回车确认。下方预览由 pingo 引擎实时渲染——直接在搜索框输入即可过滤,并跟随站点主题切换明暗。

用法

import { createElement } from "@dopejs/pingo";
import { Command } from "@dopejs/pingo-ui";

root.render(
  createElement(Command, {
    items: [
      { value: "open", label: "打开文件" },
      { value: "save", label: "保存文件" },
    ],
    onSelect: (value) => run(value),
    onDismiss: () => closePalette(),
  }),
);

过滤是大小写不敏感的标签子串匹配——刻意的非模糊匹配:排序策略属于产品决策,组件不替调用方做。onDismiss 在未匹配到导航键时响应 Escape,适合把面板包在 Dialog 里做「⌘K」体验。

Props

Prop 类型 默认值 说明
items readonly CommandItem[] 命令条目(必填)
onSelect (value: string) => void 选择条目回调(点击或回车)
onDismiss () => void Escape 回调
placeholder string "搜索" 搜索框的无障碍名称
emptyLabel string "无结果" 过滤为空时的提示文案
className string 追加类名

CommandItem

字段 类型 说明
value string 条目值(必填)
label string 显示与匹配文案(必填)

无障碍

容器具备 search 语义,条目具备 option 语义并暴露 selected 状态;上下方向键移动光标,Enter 确认,Escape 触发 onDismiss

最后更新: