Column
'use client';
import React from 'react';
import { Plate } from '@udecode/plate-common/react';
import { editorPlugins } from '@/components/editor/plugins/editor-plugins';
import { useCreateEditor } from '@/components/editor/use-create-editor';
import { Editor, EditorContainer } from '@/components/plate-ui/editor';
import { DEMO_VALUES } from './values/demo-values';
export default function Demo({ id }: { id: string }) {
const editor = useCreateEditor({
plugins: [...editorPlugins],
value: DEMO_VALUES[id],
});
return (
<Plate editor={editor}>
<EditorContainer variant="demo">
<Editor />
</EditorContainer>
</Plate>
);
}
Installation
npm install @udecode/plate-layout
Usage
import { ColumnPlugin, ColumnItemPlugin } from '@udecode/plate-layout/react';
const plugins = [
// ...otherPlugins,
ColumnPlugin,
];
Plugins
ColumnPlugin
Add Column Plugin to your document.
ColumnItemPlugin
Add Column Item Plugin to your document.
API
TColumnGroupElement
Attributes
Extends TElement
.
TColumnElement
Attributes
Extends TElement
.
The Column
's width end with %
insertColumnGroup
Insert a columnGroup with two empty columns.
Parameters
columns
: Array of column widths or number of equal-width columns (default: 2)- Other
InsertNodesOptions
to control insert behavior
The editor instance.
insertColumn
Insert an empty column. You can set the width by options.width default is "33%"
Parameters
The editor instance.
InsertNodesOptions and width to set the insert behavior.
moveMiddleColumn
Move the middle column to the left or right by options.direction. If the middle node is empty, return false and remove it.
Parameters
The editor instance.
The node entry of column
element
Control the direction the middle column moves to
toggleColumnGroup
Converts a block into a column group layout or updates an existing column group's layout.
Parameters
The editor instance.
Behavior:
- If the target block is not a column group, wraps it in a new column group with the specified number of columns
- If the target block is already a column group, updates its column layout using
setColumns
- The original content becomes the content of the first column
- Additional columns are created with empty paragraphs
setColumns
Updates the column layout of an existing column group by modifying the number and widths of columns.
Parameters
The editor instance.
Behavior:
- When increasing columns:
- Keeps existing column content
- Adds new empty columns with specified widths
- When decreasing columns:
- Merges content from removed columns into the last remaining column
- Updates widths of remaining columns
- When keeping same number of columns:
- Only updates column widths
API Components
useDebouncePopoverOpen
Returns
popover
is open or not