From a118519c3a1a27384bb97b996e75405162f120f1 Mon Sep 17 00:00:00 2001 From: Jeff Avallone Date: Sun, 27 Jan 2019 08:50:03 -0500 Subject: [PATCH] Extracting type mapping into shared module --- src/components/Render/index.js | 10 ++-------- src/layout.js | 8 +------- src/rendering/types.js | 7 +++++++ 3 files changed, 10 insertions(+), 15 deletions(-) create mode 100644 src/rendering/types.js diff --git a/src/components/Render/index.js b/src/components/Render/index.js index 73ac638..a385e0e 100644 --- a/src/components/Render/index.js +++ b/src/components/Render/index.js @@ -1,16 +1,10 @@ import React from 'react'; import PropTypes from 'prop-types'; -import SVG from 'rendering/SVG'; -import Text from 'rendering/Text'; +import nodeTypes from 'rendering/types'; import style from './style.module.css'; -const nodeTypes = { - SVG, - Text -}; - const render = (data, extraProps) => { if (typeof data === 'string') { return data; @@ -21,7 +15,7 @@ const render = (data, extraProps) => { (data, key) => render(data, { key })); return React.createElement( - nodeTypes[type] || type, + nodeTypes[type] ? nodeTypes[type].default : type, { ...extraProps, ...props }, children.length === 1 ? children[0] : children); }; diff --git a/src/layout.js b/src/layout.js index 1c87341..d2619cf 100644 --- a/src/layout.js +++ b/src/layout.js @@ -1,13 +1,7 @@ import React from 'react'; import ReactDOM from 'react-dom'; -import * as SVG from 'rendering/SVG'; -import * as Text from 'rendering/Text'; - -const nodeTypes = { - SVG, - Text -}; +import nodeTypes from 'rendering/types'; const layout = data => { if (typeof data == 'string') { diff --git a/src/rendering/types.js b/src/rendering/types.js new file mode 100644 index 0000000..88beaeb --- /dev/null +++ b/src/rendering/types.js @@ -0,0 +1,7 @@ +import * as SVG from 'rendering/SVG'; +import * as Text from 'rendering/Text'; + +export default { + SVG, + Text +};