SidebarUserBlock.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import React, { Component } from 'react';
  2. import PropTypes from 'prop-types';
  3. import { Collapse } from 'reactstrap';
  4. import { connect } from 'react-redux';
  5. class SidebarUserBlock extends Component {
  6. state = {
  7. showUserBlock: false
  8. }
  9. componentDidUpdate(oldProps) {
  10. if (oldProps.showUserBlock !== this.props.showUserBlock) {
  11. this.setState({ showUserBlock: this.props.showUserBlock })
  12. }
  13. }
  14. render() {
  15. return (
  16. <Collapse id="user-block" isOpen={ this.state.showUserBlock }>
  17. <div>
  18. <div className="item user-block">
  19. {/* User picture */}
  20. <div className="user-block-picture">
  21. <div className="user-block-status">
  22. <img className="img-thumbnail rounded-circle" src="/static/img/user/02.jpg" alt="Avatar" width="60" height="60" />
  23. <div className="circle bg-success circle-lg"></div>
  24. </div>
  25. </div>
  26. {/* Name and Job */}
  27. <div className="user-block-info">
  28. <span className="user-block-name">Hello, Mike</span>
  29. <span className="user-block-role">Designer</span>
  30. </div>
  31. </div>
  32. </div>
  33. </Collapse>
  34. )
  35. }
  36. }
  37. SidebarUserBlock.propTypes = {
  38. showUserBlock: PropTypes.bool
  39. };
  40. const mapStateToProps = state => ({ showUserBlock: state.settings.showUserBlock })
  41. export default connect(
  42. mapStateToProps
  43. )(SidebarUserBlock);