1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-07-16 16:21:48 +00:00
seahub/frontend/src/components/side-panel.js

45 lines
1.4 KiB
JavaScript
Raw Normal View History

import React from 'react';
2018-10-16 10:19:51 +00:00
import PropTypes from 'prop-types';
import { Utils } from '../utils/utils';
import Logo from './logo';
import MainSideNav from './main-side-nav';
2018-10-16 10:19:51 +00:00
const propTypes = {
isSidePanelClosed: PropTypes.bool,
currentTab: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
onCloseSidePanel: PropTypes.func,
tabItemClick: PropTypes.func,
children: PropTypes.object,
showLogoOnlyInMobile: PropTypes.bool,
isSidePanelFolded: PropTypes.bool,
toggleFoldSideNav: PropTypes.func
2018-10-16 10:19:51 +00:00
};
class SidePanel extends React.Component {
render() {
const { children, isSidePanelFolded, showLogoOnlyInMobile = false } = this.props;
return (
<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} />}
</div>
<div className="side-panel-center">
{children ? children : (
<MainSideNav
tabItemClick={this.props.tabItemClick}
currentTab={this.props.currentTab}
isSidePanelFolded={isSidePanelFolded}
toggleFoldSideNav={this.props.toggleFoldSideNav}
/>
)}
</div>
</div>
);
}
}
2018-10-16 10:19:51 +00:00
SidePanel.propTypes = propTypes;
export default SidePanel;