@talend/react-components
Version:
Set of react components.
67 lines (66 loc) • 1.92 kB
JavaScript
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