import {
Parser,
ProcessNodeDefinitions,
} from
"html-to-react"
;
import ReactComponent from
"./ReactComponent"
;
import React, { Component } from
"react"
;
const customElements = {
"my-react-component"
: ReactComponent,
};
const htmlParser =
new
Parser(React);
const processNodeDefinitions =
new
ProcessNodeDefinitions(
React
);
function
isValidNode() {
return
true
;
}
const processingInstructions = [
{
shouldProcessNode: (node) => {
return
node.name && customElements[node.name];
},
processNode: (node) => {
let CustomElement = customElements[node.name];
return
<CustomElement />;
},
},
{
shouldProcessNode: () =>
true
,
processNode:
processNodeDefinitions.processDefaultNode,
},
];
export
default
class MyParentComponent extends Component {
render() {
let htmlString =
"<div>Hi<my-react-component></my-react-component></div>"
;
return
htmlParser.parseWithInstructions(
htmlString,
isValidNode,
processingInstructions
);
}
}