1 | 'use strict';
|
2 |
|
3 | exports.__esModule = true;
|
4 |
|
5 | var _map = require('lodash/fp/map');
|
6 |
|
7 | var _map2 = _interopRequireDefault(_map);
|
8 |
|
9 | var _toPairs = require('lodash/fp/toPairs');
|
10 |
|
11 | var _toPairs2 = _interopRequireDefault(_toPairs);
|
12 |
|
13 | var _kebabCase = require('lodash/fp/kebabCase');
|
14 |
|
15 | var _kebabCase2 = _interopRequireDefault(_kebabCase);
|
16 |
|
17 | var _react = require('react');
|
18 |
|
19 | var _server = require('react-dom/server');
|
20 |
|
21 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
22 |
|
23 | const DefaultProvider = ({ children }) => children;
|
24 |
|
25 | const toHelpers = (components, Provider = DefaultProvider) => {
|
26 | const toHelper = ([componentName, Component]) => {
|
27 | return (dust, options) => {
|
28 | dust.helpers[(0, _kebabCase2.default)(componentName)] = (chunk, context, bodies, props) => {
|
29 | const providerPropsAttribute = props.context;
|
30 | const providerProps = providerPropsAttribute ? context.get(providerPropsAttribute) : {};
|
31 |
|
32 | const html = (0, _server.renderToStaticMarkup)((0, _react.createElement)(Provider, providerProps, (0, _react.createElement)(Component, props)));
|
33 |
|
34 | chunk.write(html);
|
35 | };
|
36 | };
|
37 | };
|
38 |
|
39 | return (0, _map2.default)(toHelper, (0, _toPairs2.default)(components));
|
40 | };
|
41 |
|
42 | exports.default = toHelpers;
|
43 |
|
\ | No newline at end of file |