Chisle
The coding-agent plugin that bills 52% of a bare model across 20 live tasks. Terse persona + tool-output compressor + context diet.
翻訳待ち
Unlayer is a developer platform for embedding visual builders, AI workflows, templates, code-first Elements, and export APIs into your product.
翻訳待ち
開発ツールTypeScript · JavaScriptGitHub @unlayerオンライン所有者未確認
Have you tried it? One tap is enough. No sign-in needed.
Drag-n-Drop Email Editor Component for React.js
翻訳待ち
Loading the full README.
Read the full README ↗Add a production-ready, drag-and-drop email builder to your React app with a single component. react-email-editor lets developers embed Unlayer, load and save designs, listen to editor events, customize configuration, and export responsive HTML.
Use it when you need email template creation inside your app without building and maintaining a full visual editor from scratch.
| Video Overview |
|---|
| Watch video overview: https://youtu.be/qp9t74G4VyM |
Check out the live demo here: https://react-email-editor-demo.netlify.app/ (Source Code)
The easiest way to use React Email Editor is to install it from NPM and include it in your own React build process.
npm install react-email-editor --save
Version 2.0 is a modernization release — the component API is unchanged, and most apps can upgrade without code changes. Requirements and packaging did change:
react-email-editor/dist/... are blocked by the new exports map.node_modules.See the CHANGELOG for the full list.
Require the EmailEditor component and render it with JSX:
import React, { useRef } from 'react';
import { createRoot } from 'react-dom/client';
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)
// or generated from React code with @unlayer/react-elements (renderToJson)
// 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>
);
};
createRoot(document.getElementById('app')!).render(<App />);
See the example source for a reference implementation.
The editor renders into the DOM, so the component is client-only. The published bundle includes the 'use client' directive, so with the Next.js App Router you can import it directly from any Client Component — no next/dynamic workaround required.
All unlayer methods are available in the editor instance (emailEditorRef.current.editor). See the Unlayer Docs for more information, or log the object in the console to explore it. Here are the most used ones:
| 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 |
editorId {String} HTML div id of the container where the editor will be embedded (optional)minHeight {String} minimum height to initialize the editor with (default 500px)onLoad {Function} called when the editor instance is createdonReady {Function} called when the editor has finished loadingoptions {Object} options passed to the Unlayer editor instance (default {})
style {Object} style object for the editor container (default {})The email editor output is tested using the most popular email clients.
This is the beginning of the README. Read the rest at the original. Read the full README ↗