@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
JavaScript
"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