refactor: remove unused dropdown menu and related components from TableFloatingToolbar for cleaner code

This commit is contained in:
Anish Sarkar 2026-02-17 01:40:10 +05:30
parent 1768887be8
commit 841e764729
2 changed files with 1 additions and 113 deletions

View file

@ -2,8 +2,6 @@
import * as React from 'react'; import * as React from 'react';
import type * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
import { useDraggable, useDropLine } from '@platejs/dnd'; import { useDraggable, useDropLine } from '@platejs/dnd';
import { import {
BlockSelectionPlugin, BlockSelectionPlugin,
@ -12,7 +10,6 @@ import {
import { import {
TablePlugin, TablePlugin,
TableProvider, TableProvider,
useTableBordersDropdownMenuContentState,
useTableCellElement, useTableCellElement,
useTableCellElementResizable, useTableCellElementResizable,
useTableElement, useTableElement,
@ -26,7 +23,6 @@ import {
ArrowRight, ArrowRight,
ArrowUp, ArrowUp,
CombineIcon, CombineIcon,
Grid2X2Icon,
GripVertical, GripVertical,
SquareSplitHorizontalIcon, SquareSplitHorizontalIcon,
Trash2Icon, Trash2Icon,
@ -58,27 +54,11 @@ import {
import { useElementSelector } from 'platejs/react'; import { useElementSelector } from 'platejs/react';
import { Button } from '@/components/ui/button'; import { Button } from '@/components/ui/button';
import {
DropdownMenu,
DropdownMenuCheckboxItem,
DropdownMenuContent,
DropdownMenuGroup,
DropdownMenuPortal,
DropdownMenuTrigger,
} from '@/components/ui/dropdown-menu';
import { Popover, PopoverContent } from '@/components/ui/popover'; import { Popover, PopoverContent } from '@/components/ui/popover';
import { cn } from '@/lib/utils'; import { cn } from '@/lib/utils';
import { blockSelectionVariants } from './block-selection'; import { blockSelectionVariants } from './block-selection';
import { ResizeHandle } from './resize-handle'; import { ResizeHandle } from './resize-handle';
import {
BorderAllIcon,
BorderBottomIcon,
BorderLeftIcon,
BorderNoneIcon,
BorderRightIcon,
BorderTopIcon,
} from './table-icons';
import { import {
Toolbar, Toolbar,
ToolbarButton, ToolbarButton,
@ -192,18 +172,6 @@ function TableFloatingToolbar({
</ToolbarButton> </ToolbarButton>
)} )}
<DropdownMenu modal={false}>
<DropdownMenuTrigger asChild>
<ToolbarButton tooltip="Cell borders">
<Grid2X2Icon />
</ToolbarButton>
</DropdownMenuTrigger>
<DropdownMenuPortal>
<TableBordersDropdownMenuContent />
</DropdownMenuPortal>
</DropdownMenu>
{collapsedInside && ( {collapsedInside && (
<ToolbarGroup> <ToolbarGroup>
<ToolbarButton tooltip="Delete table" {...buttonProps}> <ToolbarButton tooltip="Delete table" {...buttonProps}>
@ -282,83 +250,6 @@ function TableFloatingToolbar({
); );
} }
function TableBordersDropdownMenuContent(
props: React.ComponentProps<typeof DropdownMenuPrimitive.Content>
) {
const editor = useEditorRef();
const {
getOnSelectTableBorder,
hasBottomBorder,
hasLeftBorder,
hasNoBorders,
hasOuterBorders,
hasRightBorder,
hasTopBorder,
} = useTableBordersDropdownMenuContentState();
return (
<DropdownMenuContent
className="min-w-[220px]"
onCloseAutoFocus={(e) => {
e.preventDefault();
editor.tf.focus();
}}
align="start"
side="right"
sideOffset={0}
{...props}
>
<DropdownMenuGroup>
<DropdownMenuCheckboxItem
checked={hasTopBorder}
onCheckedChange={getOnSelectTableBorder('top')}
>
<BorderTopIcon />
<div>Top Border</div>
</DropdownMenuCheckboxItem>
<DropdownMenuCheckboxItem
checked={hasRightBorder}
onCheckedChange={getOnSelectTableBorder('right')}
>
<BorderRightIcon />
<div>Right Border</div>
</DropdownMenuCheckboxItem>
<DropdownMenuCheckboxItem
checked={hasBottomBorder}
onCheckedChange={getOnSelectTableBorder('bottom')}
>
<BorderBottomIcon />
<div>Bottom Border</div>
</DropdownMenuCheckboxItem>
<DropdownMenuCheckboxItem
checked={hasLeftBorder}
onCheckedChange={getOnSelectTableBorder('left')}
>
<BorderLeftIcon />
<div>Left Border</div>
</DropdownMenuCheckboxItem>
</DropdownMenuGroup>
<DropdownMenuGroup>
<DropdownMenuCheckboxItem
checked={hasNoBorders}
onCheckedChange={getOnSelectTableBorder('none')}
>
<BorderNoneIcon />
<div>No Border</div>
</DropdownMenuCheckboxItem>
<DropdownMenuCheckboxItem
checked={hasOuterBorders}
onCheckedChange={getOnSelectTableBorder('outer')}
>
<BorderAllIcon />
<div>Outside Borders</div>
</DropdownMenuCheckboxItem>
</DropdownMenuGroup>
</DropdownMenuContent>
);
}
export function TableRowElement({ export function TableRowElement({
children, children,
...props ...props

View file

@ -331,7 +331,6 @@ function withTooltip<T extends React.ElementType>(Component: T) {
function TooltipContent({ function TooltipContent({
children, children,
className, className,
// CHANGE
sideOffset = 4, sideOffset = 4,
...props ...props
}: React.ComponentProps<typeof TooltipPrimitive.Content>) { }: React.ComponentProps<typeof TooltipPrimitive.Content>) {
@ -339,7 +338,7 @@ function TooltipContent({
<TooltipPrimitive.Portal> <TooltipPrimitive.Portal>
<TooltipPrimitive.Content <TooltipPrimitive.Content
className={cn( className={cn(
'z-50 w-fit origin-(--radix-tooltip-content-transform-origin) text-balance rounded-md bg-primary px-3 py-1.5 text-primary-foreground text-xs', 'bg-black text-white font-medium shadow-xl px-3 py-1.5 dark:bg-zinc-800 dark:text-zinc-50 border-none animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit rounded-md text-xs text-balance pointer-events-none',
className className
)} )}
data-slot="tooltip-content" data-slot="tooltip-content"
@ -347,8 +346,6 @@ function TooltipContent({
{...props} {...props}
> >
{children} {children}
{/* CHANGE */}
{/* <TooltipPrimitive.Arrow className="z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-primary fill-primary" /> */}
</TooltipPrimitive.Content> </TooltipPrimitive.Content>
</TooltipPrimitive.Portal> </TooltipPrimitive.Portal>
); );