React Component
Unlayer editor is also available as a React component.
Installation
The easiest way to use it is to install it from npm and include it in your own React build process.
Npm
npm install react-email-editor --save
Yarn
yarn add react-email-editor
Usage
Require the EmailEditor component and render it with JSX:
import React, { useRef } from 'react';
import { render } from 'react-dom';
import EmailEditor, { EditorRef, EmailEditorProps } from 'react-email-editor';
const App = (props) => {
const emailEditorRef = useRef<EditorRef>(null);
const exportHtml = () => {
const unlayer = emailEditorRef.current?.editor;
unlayer?.exportHtml((data) => {
const { design, html } = data;
console.log('exportHtml', html);
});
};
const onReady: EmailEditorProps['onReady'] = (unlayer) => {
// editor is ready
// you can load your template here;
// the design json can be obtained by calling
// unlayer.loadDesign(callback) or unlayer.exportHtml(callback)
// const templateJson = { DESIGN JSON GOES HERE };
// unlayer.loadDesign(templateJson);
};
return (
<div>
<div>
<button onClick={exportHtml}>Export HTML</button>
</div>
<EmailEditor ref={emailEditorRef} onReady={onReady} />
</div>
);
};
render(<App />, document.getElementById('app'));
Methods
Method | Params | Description |
---|---|---|
loadDesign | Object data | Takes the design JSON and loads it in the editor |
saveDesign | Function callback | Returns the design JSON in a callback function |
exportHtml | Function callback | Returns the design HTML and JSON in a callback function |
Properties
Name | Type | Description | Default Value |
---|---|---|---|
style | Object | style object for the editor container | {} |
minHeight | String | minimum height to initialize the editor with | 500px |
onLoad | Function | called when the editor instance is created | |
onReady | Function | called when the editor has finished loading | |
options | Object | options passed to the Unlayer editor instance. See the configuration options for all available options. | {} |
tools | Object | configuration for the built-in and custom tools | {} |
appearance | Object | configuration for appearance and theme | {} |
projectId | Integer | Unlayer project ID (optional) |
Example
See the example source for a reference implementation.
Updated 2 months ago