UNPKG

@talend/react-containers

Version:

Provide connected components aka containers for @talend/react-cmf based on @talend/react-components.

78 lines (77 loc) 2.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _propTypes = _interopRequireDefault(require("prop-types")); var _react = require("react"); var _List = _interopRequireDefault(require("../List")); var _SidePanel = _interopRequireDefault(require("../SidePanel")); var _reactComponents = require("@talend/react-components"); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function getContent(Component, props) { if (/*#__PURE__*/(0, _react.isValidElement)(props)) { return props; } return /*#__PURE__*/(0, _jsxRuntime.jsx)(Component, { ...props }); } function wrapChildren(children) { if (children && children.props && children.props.children) { return [children, ...wrapChildren(children.props.children)]; } else if (children && !children.props) { // this happens ony in tests with enzyme's mount return []; } return [children]; } function HomeListView({ getComponent, components, id, hasTheme, sidepanel, list, header, children }) { if (!sidepanel || !list) { return null; } let drawers = children || []; if (!Array.isArray(drawers)) { drawers = wrapChildren(drawers); } if (components && components.drawers) { drawers = drawers.concat(_reactComponents.Inject.map(getComponent, components.drawers)); } const Renderers = _reactComponents.Inject.getAll(getComponent, { HeaderBar: _reactComponents.HeaderBar, SidePanel: _SidePanel.default, List: _List.default }); return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactComponents.Layout, { id: id, hasTheme: hasTheme, mode: "TwoColumns", header: getContent(Renderers.HeaderBar, header), one: getContent(Renderers.SidePanel, sidepanel), drawers: drawers, children: getContent(Renderers.List, list) }); } HomeListView.displayName = 'HomeListView'; HomeListView.propTypes = { getComponent: _propTypes.default.func, id: _propTypes.default.string, hasTheme: _propTypes.default.bool, components: _propTypes.default.object, header: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.object]), sidepanel: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.object]).isRequired, list: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.object]).isRequired, children: _propTypes.default.node }; var _default = exports.default = HomeListView; //# sourceMappingURL=HomeListView.component.js.map