Editor is rich text editor component based on Quill.
import { Editor } from 'primereact/editor';
<script src="https://unpkg.com/primereact/core/core.min.js"></script>
<script src="https://unpkg.com/primereact/editor/editor.min.js"></script>
Editor is used as a controlled component with value and onTextChange properties.
<Editor style={{height:'320px'}} value={text} onTextChange={(e) => setText(e.htmlValue)} />
Editor provides a default toolbar with common options, to customize it define your elements with the headerTemplate. Refer to Quill documentation for available controls.
const header = (
<span className="ql-formats">
<button className="ql-bold" aria-label="Bold"></button>
<button className="ql-italic" aria-label="Italic"></button>
<button className="ql-underline" aria-label="Underline"></button>
</span>
);
<Editor style={{height:'320px'}} value={text} onTextChange={(e) => setText(e.htmlValue)} headerTemplate={header}/>
Any valid attribute is passed to the root element implicitly, extended properties are as follows;
Name | Type | Default | Description |
---|---|---|---|
id | string | null | Unique identifier of the element. |
value | string | null | Value of the content. |
style | object | null | Inline style of the container. |
className | string | null | Style class of the container. |
placeholder | string | null | Placeholder text to show when editor is empty. |
readOnly | boolean | false | Whether to instantiate the editor to read-only mode. |
modules | object | null | Modules configuration, see here for available options. |
formats | string[] | null | Whitelist of formats to display, see here for available options. |
headerTemplate | any | null | Style and modules of the toolbar. |
maxLength | number | null | Maximum number of characters the editor will accept. |
Name | Parameters | Description |
---|---|---|
onTextChange | event.delta: Representation of the change. event.source: Source of change. Will be either "user" or "api". event.htmlValue: Current value as html. event.textValue: Current value as text. | Callback to invoke when text of editor changes. |
onSelectionChange | event.range: Object with index and length keys indicating where the selection exists. event.oldRange: Object with index and length keys indicating where the previous selection was. event.source: Source of change. Will be either "user" or "api". | Callback to invoke when selected text of editor changes. |
onLoad | quill: Quill instance | Callback to invoke when the quill modules are loaded. |
Refer to Quill documentation for more information.
Following is the list of structural style classes, for theming classes visit theming page.
Name | Element |
---|---|
p-editor-container | Container element |
p-editor-toolbar | Toolbar of the editor |
p-editor-content | Editable area |
This section is under development. After the necessary tests and improvements are made, it will be shared with the users as soon as possible.
Quill Editor 1.3+.
Resources of quill needs to be added to your application.
npm install quill
Built-in component themes created by the PrimeReact Theme Designer.
Premium themes are only available exclusively for PrimeReact Theme Designer subscribers and therefore not included in PrimeReact core.
Beautifully crafted premium create-react-app application templates by the PrimeTek design team.