raonkeditor-react
Version:
React component for RAON K Editor
54 lines (46 loc) • 1.22 kB
JSX
import * as React from 'react';
import Sidebar from './Sidebar';
import RaonkEditor from './RaonkEditor';
const { version, useRef, useState } = React;
function App() {
const [ events, setEvents ] = useState( [] );
const [ uniqueName, setUniqueName ] = useState( getUniqueName() );
const start = useRef( new Date() );
const handleRemountClick = () => {
setUniqueName( getUniqueName() );
};
const pushEvent = ( evtName, componentName ) => {
setEvents( events =>
events.concat( {
evtName,
componentName: componentName,
date: new Date()
} )
);
};
return (
<div>
<section className="container">
<Sidebar events={events} start={start.current} />
<div className="paper flex-grow-3">
<RaonkEditor
key={uniqueName}
pushEvent={pushEvent}
uniqueName={uniqueName}
/>
<button className="btn" onClick={handleRemountClick}>
{'Re-mount component'}
</button>
</div>
</section>
<footer>{`Running React v${ version }`}</footer>
</div>
);
}
function getUniqueName() {
return Math.random()
.toString( 36 )
.replace( /[^a-z]+/g, '' )
.substr( 0, 5 );
}
export default App;