UNPKG

@talend/react-components

Version:
67 lines (66 loc) 1.92 kB
import PropTypes from 'prop-types'; import classnames from 'classnames'; import TabBar from '../../TabBar'; import WithDrawer from '../../WithDrawer'; import Inject from '../../Inject'; import theme from './TwoColumns.module.scss'; /** * @param {object} props react props * @example <TwoColumns name="Hello world"></TwoColumns> */ import { omit } from "lodash"; import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; function TwoColumns({ one, drawers, children, tabs, getComponent, ...props }) { const containerCSS = classnames('tc-layout-two-columns', theme.container); const sidemenuCSS = classnames('tc-layout-two-columns-left', theme.sidemenu); const mainCSS = classnames('tc-layout-two-columns-main', theme.main); const style = { overflow: 'auto', height: '100%', display: 'flex', flexDirection: 'column' }; const safeOne = Inject.getReactElement(getComponent, one); return /*#__PURE__*/_jsxs("div", { className: containerCSS, ...omit(props, 'getComponents'), children: [/*#__PURE__*/_jsx("div", { className: sidemenuCSS, id: "tc-layout-side-menu", tabIndex: "-1", children: safeOne }), /*#__PURE__*/_jsx("div", { className: mainCSS, role: "main", id: "tc-layout-main", tabIndex: "-1", children: /*#__PURE__*/_jsxs(WithDrawer, { drawers: drawers, children: [tabs && /*#__PURE__*/_jsx(TabBar, { ...tabs }), /*#__PURE__*/_jsx("div", { style: style, children: children })] }) })] }); } TwoColumns.displayName = 'TwoColumns'; TwoColumns.propTypes = { one: Inject.getReactElement.propTypes, children: PropTypes.node, drawers: PropTypes.arrayOf(PropTypes.node), tabs: PropTypes.shape(TabBar.propTypes), getComponent: PropTypes.func }; export default TwoColumns; //# sourceMappingURL=TwoColumns.component.js.map