import React, { Fragment } from 'react' import PropTypes from 'prop-types' import cx from 'classnames' import Categories from './Categories' import Filter from './Filter' import DeletePopup from './DeletePopup' import RenamePopup from './RenamePopup' import AddCategoryPopup from './AddCategoryPopup' import AddClippingsFeedPopup from './AddClippingsFeedPopup' import LoadersAdvanced from '../../common/Loader/Loader' import CSSTransitionGroup from 'react-transition-group/CSSTransitionGroup' import PerfectScrollbar from 'react-perfect-scrollbar' import HeaderLogo from '../AppHeader/HeaderLogo' export class Sidebar extends React.Component { static propTypes = { actions: PropTypes.object.isRequired, themeOptions: PropTypes.object.isRequired, backgroundColor: PropTypes.string, backgroundImage: PropTypes.any, backgroundImageOpacity: PropTypes.any, enableBackgroundImage: PropTypes.any, enableMobileMenu: PropTypes.any, enableSidebarShadow: PropTypes.any, setEnableMobileMenu: PropTypes.func, t: PropTypes.func, sidebarState: PropTypes.object.isRequired } constructor (props) { super(props) this.state = { sidebarAnimationDisabled: true, activeSearch: false } } toggleMobileSidebar = () => { let { enableMobileMenu, setEnableMobileMenu } = this.props setEnableMobileMenu(!enableMobileMenu) } componentDidMount = () => { this.props.actions.getSidebarCategories() } activeSearchFunc = () => { this.setState({ activeSearch: !this.state.activeSearch }) } render () { let { backgroundColor, enableBackgroundImage, enableSidebarShadow, backgroundImage, backgroundImageOpacity } = this.props.themeOptions const { sidebarState, actions } = this.props return (
{!sidebarState.areCategoriesLoaded && }
{sidebarState.popupVisible.delete && ( )} {sidebarState.popupVisible.rename && ( )} {sidebarState.popupVisible.addCategory && ( )} {sidebarState.popupVisible.addClippingsFeed && ( )}
) } } export default React.memo(Sidebar)