ToolJet/frontend/src/Editor/Components/RichTextEditor.jsx
Arpit 9505589e6e
[improvement] Widget components #1475 - text editor widget (#1481)
* new implementation/rich-text-editor

* Ensure that Rich text editor exposes its default value on load

Co-authored-by: Sherfin Shamsudeen <sherfin94@gmail.com>
2021-12-14 16:48:42 +05:30

31 lines
974 B
JavaScript

import React, { useEffect } from 'react';
import 'draft-js/dist/Draft.css';
import { DraftEditor } from './DraftEditor';
export const RichTextEditor = function RichTextEditor({ width, height, properties, styles, setExposedVariable }) {
const { visibility, disabledState } = styles;
const placeholder = properties.placeholder;
const defaultValue = properties?.defaultValue ?? '';
// exposing the default value at first
useEffect(() => {
setExposedVariable('value', defaultValue);
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
function handleChange(html) {
setExposedVariable('value', html);
}
return (
<div data-disabled={disabledState} style={{ height: `${height}px`, display: visibility ? '' : 'none' }}>
<DraftEditor
handleChange={handleChange}
height={height}
width={width}
placeholder={placeholder}
defaultValue={defaultValue}
></DraftEditor>
</div>
);
};