@visual-framework/vf-component-generator
Version:
Make the config for Visual Framework component interactively.
40 lines (35 loc) • 1.48 kB
JavaScript
// <%= componentName %> for React
// See vf-extensions-react for usage guidance
// We use vanilla JS templates for react for compatibility with create react app
// ---
import React from "react";
import Fragment from "react-dom-fragment";
// eslint-disable-next-line no-unused-vars
import <%= componentNameReact %>Template from "./<%= componentName %>.precompiled.js"; // import templates before the nunjucks env
import { vfNunjucksEnv } from "@visual-framework/vf-extensions-react/vf-extensions-react.js";
// any JS actions needed on component insertion
class <%= componentNameReact %>Callback extends React.Component {
componentDidMount() {
console.log('any JS actions needed')
}
render() {
return React.createElement(React.Fragment, null);
}
}
const <%= componentNameReact %> = React.memo(({
variant, newTheme, card_image, card_text, card_image__alt, card_title
}) => {
return React.createElement(React.Fragment, null,
React.createElement(Fragment, {
dangerouslySetInnerHTML: {
// our HTML is handled by nunjucks, this should not receive user input
__html: vfNunjucksEnv.render('<%= componentName %>', {
variant: variant, newTheme: newTheme, card_image: card_image, card_text: card_text, card_image__alt: card_image__alt, card_title: card_title
})
}
}),
React.createElement(<%= componentNameReact %>Callback, null)
);
}
);
export { <%= componentNameReact %> };