SidebarUserBlock.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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: true,
  8. user: {},
  9. };
  10. componentDidMount() {
  11. this.setState({ user: JSON.parse(sessionStorage.getItem("user")) });
  12. }
  13. componentDidUpdate(oldProps) {
  14. if (oldProps.showUserBlock !== this.props.showUserBlock) {
  15. this.setState({ showUserBlock: this.props.showUserBlock });
  16. }
  17. }
  18. render() {
  19. const { user } = this.state;
  20. return (
  21. <Collapse id="user-block" isOpen={this.state.showUserBlock}>
  22. <div>
  23. <div className="item user-block">
  24. {/* User picture */}
  25. <div className="user-block-picture">
  26. <div className="user-block-status">
  27. <img className="img-thumbnail rounded-circle" src="/static/img/logo-single.png" alt="Avatar" width="60" height="60" />
  28. <div className="circle bg-success circle-lg"></div>
  29. </div>
  30. </div>
  31. {/* Name and Job */}
  32. <div className="user-block-info">
  33. <span className="user-block-name">{user.nama}</span>
  34. {/* <span className="user-block-role">{user.nama}</span> */}
  35. </div>
  36. </div>
  37. </div>
  38. </Collapse>
  39. );
  40. }
  41. }
  42. SidebarUserBlock.propTypes = {
  43. showUserBlock: PropTypes.bool,
  44. };
  45. const mapStateToProps = (state) => ({ showUserBlock: state.settings.showUserBlock });
  46. export default connect(mapStateToProps)(SidebarUserBlock);