Display profile errors better

This commit is contained in:
Luke Barnard 2017-06-02 11:50:58 +01:00
parent e88b52fa8f
commit 6e84b6e996

View file

@ -38,6 +38,7 @@ export default class ChatCreateOrReuseDialog extends React.Component {
displayName: null,
avatarUrl: null,
},
profileError: null,
};
}
@ -79,7 +80,7 @@ export default class ChatCreateOrReuseDialog extends React.Component {
this.setState({
busyProfile: true,
});
MatrixClientPeg.get().getProfileInfo(this.props.userId).then((resp) => {
MatrixClientPeg.get().getProfileInfo(this.props.userId).done((resp) => {
const profile = {
displayName: resp.displayname,
avatarUrl: null,
@ -90,13 +91,17 @@ export default class ChatCreateOrReuseDialog extends React.Component {
);
}
this.setState({
busyProfile: false,
profile: profile,
});
}, (err) => {
console.error('Unable to get profile for user', this.props.userId, err);
}).finally(() => {
console.error(
'Unable to get profile for user ' + this.props.userId + ':',
err,
);
this.setState({
busyProfile: false,
profileError: err,
});
});
}
@ -141,6 +146,10 @@ export default class ChatCreateOrReuseDialog extends React.Component {
let profile = null;
if (this.state.busyProfile) {
profile = <Spinner />;
} else if (this.state.profileError) {
profile = <div className="error">
Unable to load profile information for { this.props.userId }
</div>;
} else {
profile = <div className="mx_ChatCreateOrReuseDialog_profile">
<BaseAvatar