'use client'; import React from 'react'; import type { DropdownMenuProps } from '@radix-ui/react-dropdown-menu'; import { someNode } from '@udecode/plate-common'; import { focusEditor, useEditorPlugin, useEditorSelector, } from '@udecode/plate-common/react'; import { deleteTable, insertTableRow } from '@udecode/plate-table'; import { TablePlugin, deleteColumn, deleteRow, insertTable, } from '@udecode/plate-table/react'; import { Minus, Plus, RectangleHorizontal, RectangleVertical, Table, Trash, } from 'lucide-react'; import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, useOpenState, } from './dropdown-menu'; import { ToolbarButton } from './toolbar'; export function TableDropdownMenu(props: DropdownMenuProps) { const tableSelected = useEditorSelector( (editor) => someNode(editor, { match: { type: TablePlugin.key } }), [] ); const { editor, tf } = useEditorPlugin(TablePlugin); const openState = useOpenState(); return (
Table { insertTable(editor, {}, { select: true }); focusEditor(editor); }} > Insert table { deleteTable(editor); focusEditor(editor); }} > Delete table Column { tf.insert.tableColumn(); focusEditor(editor); }} > Insert column after { deleteColumn(editor); focusEditor(editor); }} > Delete column Row { insertTableRow(editor); focusEditor(editor); }} > Insert row after { deleteRow(editor); focusEditor(editor); }} > Delete row ); }