Surface unsent messages on the sublist notification badge too
This commit is contained in:
parent
bbe714257e
commit
aff9be6120
3 changed files with 11 additions and 8 deletions
|
@ -143,15 +143,16 @@ export default class NotificationBadge extends React.PureComponent<XOR<IProps, I
|
|||
});
|
||||
|
||||
if (onClick) {
|
||||
let tooltip;
|
||||
let label: string;
|
||||
let tooltip: JSX.Element;
|
||||
if (showUnsentTooltip && this.state.showTooltip && notification.color === NotificationColor.Unsent) {
|
||||
tooltip = (
|
||||
<Tooltip className="mx_RoleButton_tooltip" label={_t("Message didn't send. Click for info.")} />
|
||||
);
|
||||
label = _t("Message didn't send. Click for info.");
|
||||
tooltip = <Tooltip className="mx_RoleButton_tooltip" label={label} />;
|
||||
}
|
||||
|
||||
return (
|
||||
<AccessibleButton
|
||||
aria-label={label}
|
||||
{...props}
|
||||
className={classes}
|
||||
onClick={onClick}
|
||||
|
|
|
@ -670,6 +670,7 @@ export default class RoomSublist extends React.Component<IProps, IState> {
|
|||
onClick={this.onBadgeClick}
|
||||
tabIndex={tabIndex}
|
||||
aria-label={ariaLabel}
|
||||
showUnsentTooltip={true}
|
||||
/>
|
||||
);
|
||||
|
||||
|
|
|
@ -31,10 +31,6 @@ export class ListNotificationState extends NotificationState {
|
|||
super();
|
||||
}
|
||||
|
||||
public get symbol(): string {
|
||||
return null; // This notification state doesn't support symbols
|
||||
}
|
||||
|
||||
public setRooms(rooms: Room[]) {
|
||||
// If we're only concerned about the tile count, don't bother setting up listeners.
|
||||
if (this.byTileCount) {
|
||||
|
@ -82,6 +78,7 @@ export class ListNotificationState extends NotificationState {
|
|||
private calculateTotalState() {
|
||||
const snapshot = this.snapshot();
|
||||
|
||||
this._symbol = null;
|
||||
if (this.byTileCount) {
|
||||
this._color = NotificationColor.Red;
|
||||
this._count = this.rooms.length;
|
||||
|
@ -92,6 +89,10 @@ export class ListNotificationState extends NotificationState {
|
|||
this._count += state.count;
|
||||
this._color = Math.max(this.color, state.color);
|
||||
}
|
||||
|
||||
if (this._color === NotificationColor.Unsent) {
|
||||
this._symbol = "!";
|
||||
}
|
||||
}
|
||||
|
||||
// finally, publish an update if needed
|
||||
|
|
Loading…
Reference in a new issue