| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | import React, { Component } from "react";import PropTypes from "prop-types";import { Collapse } from "reactstrap";import { connect } from "react-redux";class SidebarUserBlock extends Component {	state = {		showUserBlock: true,		user: {},		role: {},	};	async componentDidMount() {		const user = this.props.user;		this.setState({ user, role: user.role });	}	componentDidUpdate(oldProps) {		if (oldProps.showUserBlock !== this.props.showUserBlock) {			this.setState({ showUserBlock: this.props.showUserBlock });		}	}	render() {		const { user, role } = this.state;		return (			<Collapse id="user-block" isOpen={this.state.showUserBlock}>				<div>					<div className="item user-block">						{/* User picture */}						<div className="user-block-picture">							<div className="user-block-status">								<img className="rounded-circle" src={role.id === 2022 ? "/static/img/univ-avatar.png" : "/static/img/logo-single.png"} alt="Avatar" width="60" height="60" />								<div className="circle bg-success circle-lg"></div>							</div>						</div>						{/* Name and Job */}						<div className="user-block-info">							<span className="user-block-name">{user.nama}</span>							<span className="user-block-role">{role.nama}</span>						</div>					</div>				</div>			</Collapse>		);	}}SidebarUserBlock.propTypes = {	showUserBlock: PropTypes.bool,};const mapStateToProps = (state) => ({ showUserBlock: state.settings.showUserBlock, user: state.user });export default connect(mapStateToProps)(SidebarUserBlock);
 |