Skip to content
This repository was archived by the owner on Sep 11, 2024. It is now read-only.

Commit e825a4a

Browse files
committed
show better error msg after UnkDevDialog
should fix element-hq/element-web#3122
1 parent cd5a1ab commit e825a4a

File tree

2 files changed

+19
-12
lines changed

2 files changed

+19
-12
lines changed

src/components/structures/RoomStatusBar.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ module.exports = React.createClass({
3939
// the number of messages which have arrived since we've been scrolled up
4040
numUnreadMessages: React.PropTypes.number,
4141

42-
// true if there are messages in the room which had errors on send
43-
hasUnsentMessages: React.PropTypes.bool,
42+
// string to display when there are messages in the room which had errors on send
43+
unsentMessageError: React.PropTypes.string,
4444

4545
// this is true if we are fully scrolled-down, and are looking at
4646
// the end of the live timeline.
@@ -160,7 +160,7 @@ module.exports = React.createClass({
160160
return STATUS_BAR_EXPANDED;
161161
} else if (props.tabCompleteEntries) {
162162
return STATUS_BAR_HIDDEN;
163-
} else if (props.hasUnsentMessages) {
163+
} else if (props.unsentMessageError) {
164164
return STATUS_BAR_EXPANDED_LARGE;
165165
}
166166
return STATUS_BAR_HIDDEN;
@@ -288,12 +288,12 @@ module.exports = React.createClass({
288288
);
289289
}
290290

291-
if (this.props.hasUnsentMessages) {
291+
if (this.props.unsentMessageError) {
292292
return (
293293
<div className="mx_RoomStatusBar_connectionLostBar">
294294
<img src="img/warning.svg" width="24" height="23" title="/!\ " alt="/!\ "/>
295295
<div className="mx_RoomStatusBar_connectionLostBar_title">
296-
Some of your messages have not been sent.
296+
{ this.props.unsentMessageError }
297297
</div>
298298
<div className="mx_RoomStatusBar_connectionLostBar_desc">
299299
<a className="mx_RoomStatusBar_resend_link"

src/components/structures/RoomView.js

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ module.exports = React.createClass({
128128
draggingFile: false,
129129
searching: false,
130130
searchResults: null,
131-
hasUnsentMessages: false,
131+
unsentMessageError: '',
132132
callState: null,
133133
guestsCanJoin: false,
134134
canPeek: false,
@@ -182,7 +182,7 @@ module.exports = React.createClass({
182182
room: room,
183183
roomId: result.room_id,
184184
roomLoading: !room,
185-
hasUnsentMessages: this._hasUnsentMessages(room),
185+
unsentMessageError: this._getUnsentMessageError(room),
186186
}, this._onHaveRoom);
187187
}, (err) => {
188188
this.setState({
@@ -196,7 +196,7 @@ module.exports = React.createClass({
196196
roomId: this.props.roomAddress,
197197
room: room,
198198
roomLoading: !room,
199-
hasUnsentMessages: this._hasUnsentMessages(room),
199+
unsentMessageError: this._getUnsentMessageError(room),
200200
}, this._onHaveRoom);
201201
}
202202
},
@@ -397,7 +397,7 @@ module.exports = React.createClass({
397397
case 'message_sent':
398398
case 'message_send_cancelled':
399399
this.setState({
400-
hasUnsentMessages: this._hasUnsentMessages(this.state.room)
400+
unsentMessageError: this._getUnsentMessageError(this.state.room),
401401
});
402402
break;
403403
case 'notifier_enabled':
@@ -636,8 +636,15 @@ module.exports = React.createClass({
636636
}
637637
}, 500),
638638

639-
_hasUnsentMessages: function(room) {
640-
return this._getUnsentMessages(room).length > 0;
639+
_getUnsentMessageError: function(room) {
640+
const unsentMessages = this._getUnsentMessages(room);
641+
if (!unsentMessages.length) return "";
642+
for (const event of unsentMessages) {
643+
if (!event.error || event.error.name !== "UnknownDeviceError") {
644+
return "Some of your messages have not been sent.";
645+
}
646+
}
647+
return "Message not sent due to unknown devices being present";
641648
},
642649

643650
_getUnsentMessages: function(room) {
@@ -1521,7 +1528,7 @@ module.exports = React.createClass({
15211528
room={this.state.room}
15221529
tabComplete={this.tabComplete}
15231530
numUnreadMessages={this.state.numUnreadMessages}
1524-
hasUnsentMessages={this.state.hasUnsentMessages}
1531+
unsentMessageError={this.state.unsentMessageError}
15251532
atEndOfLiveTimeline={this.state.atEndOfLiveTimeline}
15261533
hasActiveCall={inCall}
15271534
onResendAllClick={this.onResendAllClick}

0 commit comments

Comments
 (0)