2018-09-20 02:19:11 +00:00
|
|
|
import React from 'react';
|
2018-10-16 10:19:51 +00:00
|
|
|
import PropTypes from 'prop-types';
|
2024-07-09 07:08:47 +00:00
|
|
|
import { Utils } from '../utils/utils';
|
2018-09-20 02:19:11 +00:00
|
|
|
import Logo from './logo';
|
|
|
|
import MainSideNav from './main-side-nav';
|
|
|
|
|
2018-10-16 10:19:51 +00:00
|
|
|
const propTypes = {
|
2024-06-25 13:48:57 +00:00
|
|
|
isSidePanelClosed: PropTypes.bool,
|
|
|
|
currentTab: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
|
|
|
onCloseSidePanel: PropTypes.func,
|
|
|
|
tabItemClick: PropTypes.func,
|
2024-07-09 07:08:47 +00:00
|
|
|
children: PropTypes.object,
|
|
|
|
showLogoOnlyInMobile: PropTypes.bool,
|
|
|
|
isSidePanelFolded: PropTypes.bool,
|
|
|
|
toggleFoldSideNav: PropTypes.func
|
2018-10-16 10:19:51 +00:00
|
|
|
};
|
2018-09-20 02:19:11 +00:00
|
|
|
|
|
|
|
class SidePanel extends React.Component {
|
|
|
|
|
|
|
|
render() {
|
2024-07-09 07:08:47 +00:00
|
|
|
const { children, isSidePanelFolded, showLogoOnlyInMobile = false } = this.props;
|
2018-09-20 02:19:11 +00:00
|
|
|
return (
|
2024-07-09 07:08:47 +00:00
|
|
|
<div className={`side-panel ${isSidePanelFolded ? 'side-panel-folded' : ''} ${this.props.isSidePanelClosed ? '' : 'left-zero'}`}>
|
|
|
|
<div className={'side-panel-north'}>
|
|
|
|
{showLogoOnlyInMobile && !Utils.isDesktop() && <Logo onCloseSidePanel={this.props.onCloseSidePanel} />}
|
2018-09-20 02:19:11 +00:00
|
|
|
</div>
|
|
|
|
<div className="side-panel-center">
|
2024-07-09 07:08:47 +00:00
|
|
|
{children ? children : (
|
|
|
|
<MainSideNav
|
|
|
|
tabItemClick={this.props.tabItemClick}
|
|
|
|
currentTab={this.props.currentTab}
|
|
|
|
isSidePanelFolded={isSidePanelFolded}
|
|
|
|
toggleFoldSideNav={this.props.toggleFoldSideNav}
|
|
|
|
/>
|
|
|
|
)}
|
2018-09-20 02:19:11 +00:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-10-16 10:19:51 +00:00
|
|
|
SidePanel.propTypes = propTypes;
|
|
|
|
|
2018-09-20 02:19:11 +00:00
|
|
|
export default SidePanel;
|