/* eslint-disable react/no-multi-comp */ import React from 'react'; import {IUser} from 'superdesk-api'; import {dataApi} from 'core/helpers/CrudManager'; import {UserAvatar} from './UserAvatar'; interface IProps { userId: string; } interface IState { user?: IUser; } class UserAvatarFromUserIdComponent extends React.PureComponent { constructor(props: IProps) { super(props); this.state = {}; } componentDidMount() { if (this.state.user == null) { dataApi.findOne('users', this.props.userId).then((user) => { this.setState({user}); }); } } render() { const {user} = this.state; if (user == null) { return null; } return ( ); } } export class UserAvatarFromUserId extends React.PureComponent { render() { // the component has state derived from props and must be re-mounted when props change // that is what `key={this.props.userId}` does. return ; } }