添加下拉菜单以选择列表类型
一个用于从多种列表类型中选择的下拉菜单。
安装
您可以通过 Tiptap CLI(用于 Vite 或 Next.js)添加该组件
npx @tiptap/cli add list-dropdown-menu手动集成
对于 Vite 或 Next.js 以外的框架,您可以从 开源仓库 手动添加组件。
导入样式
该组件需要您导入我们在 styles/keyframe-animation.scss 和 styles/_variables.scss 中添加的样式。
使用
import { EditorContent, EditorContext, useEditor } from '@tiptap/react'
import { StarterKit } from '@tiptap/starter-kit'
import { TaskList } from '@tiptap/extension-task-list'
import { TaskItem } from '@tiptap/extension-task-item'
import { ListDropdownMenu } from '@/components/tiptap-ui/list-dropdown-menu'
import '@/components/tiptap-node/code-block-node/code-block-node.scss'
import '@/components/tiptap-node/list-node/list-node.scss'
import '@/components/tiptap-node/paragraph-node/paragraph-node.scss'
export default function MyEditor() {
const editor = useEditor({
immediatelyRender: false,
extensions: [StarterKit, TaskList, TaskItem.configure({ nested: true })],
content: `
<ul>
<li>
<strong>粗体</strong> 用于强调,可以使用 <code>**</code> 或 <code>⌘+B</code> 或 <code>B</code> 按钮。
</li>
<li>
<em>斜体</em> 用于细微的差别,可以使用 <code>*</code> 或 <code>⌘+I</code> 或 <code>I</code> 按钮。
</li>
<li>
<s>删除线</s> 用于显示修改,可以使用 <code>~~</code> 或 <code>~~S~~</code> 按钮。
</li>
</ul>
<ul data-type="taskList">
<li data-type="taskItem" data-checked="true">
<div>
测试模板
</div>
</li>
<li data-type="taskItem" data-checked="false">
<div>
<a target="_blank" rel="noopener noreferrer nofollow" href="https://tiptap.dev/pricing">创建帐户</a>
</div>
</li>
<li data-type="taskItem" data-checked="false">
<div>
下载免费模板
</div>
</li>
</ul>
`,
})
return (
<EditorContext.Provider value={{ editor }}>
<div className="tiptap-button-group" data-orientation="horizontal">
<ListDropdownMenu types={['bulletList', 'orderedList', 'taskList']} />
</div>
<EditorContent editor={editor} role="presentation" />
</EditorContext.Provider>
)
}属性
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| editor | Editor | null | null | Tiptap 编辑器实例 |
| types | Array<'bulletList' | 'orderedList' | 'taskList'> | ['bulletList', 'orderedList', 'taskList'] | 下拉菜单中包含的列表类型 |
| hideWhenUnavailable | boolean | false | 菜单是否在浮动上下文中 |
| onOpenChange | (isOpen: boolean) => void | - | 下拉菜单打开状态更改时的回调 |
要求
使用的参考组件
use-tiptap-editor(hook)tiptap-utils(lib)list-button(ui)button(primitive)dropdown-menu(primitive)list-icon(icon)chevron-down-icon(icon)
开源特性
@tiptap/extension-task-list@tiptap/extension-task-item