/* eslint-disable react/prop-types */

import * as React from 'react';
import { useDEXT5Editor } from 'dext5editor-react';

const { useState } = React;

/**
 * Pass `dispatch` from `useReducer` in order to listen to component's events and derive state of your components as needed.
 */
function DEXT5EditorCmp( { debug, config, initData, componentUrl, id, dispatchEvent } ) {
	const [ element, setElement ] = useState();

	useDEXT5Editor( {
		debug,
		element,
		config,
		componentUrl,
		initContent: initData,
		dispatchEvent,
		subscribeTo: [
			// Subscribed default events
			'namespaceLoaded',
			'beforeLoad',
			'loaded',
			'creationComplete',
			'destroy'
		]
	} );

	return <div id={id} ref={setElement} />;
}

export default DEXT5EditorCmp;
